OperationBase.MarkErrorAsHandled-Methode

Gibt an, dass ein in einem Vorgang aufgetretener Fehler behandelt wird.

Namespace: System.ServiceModel.DomainServices.Client
Assembly: System.ServiceModel.DomainServices.Client (in system.servicemodel.domainservices.client.dll)

Verwendung

'Usage
Dim instance As OperationBase

instance.MarkErrorAsHandled

Syntax

'Declaration
Public Sub MarkErrorAsHandled
public void MarkErrorAsHandled ()
public:
void MarkErrorAsHandled ()
public void MarkErrorAsHandled ()
public function MarkErrorAsHandled ()

Beispiel

Im folgenden Beispiel wird eine Rückrufmethode für einen Sendevorgang veranschaulicht, die eine Überprüfung auf Fehler durchführt und die MarkErrorAsHandled-Methode aufruft.

Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
    _customerContext.SubmitChanges(AddressOf OnSubmitCompleted, Nothing)
End Sub

Private Sub RejectButton_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
    _customerContext.RejectChanges()
    CheckChanges()
End Sub

Private Sub CustomerGrid_RowEditEnded(ByVal sender As System.Object, ByVal e As System.Windows.Controls.DataGridRowEditEndedEventArgs)
    CheckChanges()
End Sub

Private Sub CheckChanges()
    Dim changeSet = _customerContext.EntityContainer.GetChanges()
    ChangeText.Text = changeSet.ToString()

    Dim hasChanges = _customerContext.HasChanges
    SaveButton.IsEnabled = hasChanges
    RejectButton.IsEnabled = hasChanges
End Sub

Private Sub OnSubmitCompleted(ByVal so As SubmitOperation)
    If (so.HasError) Then
        MessageBox.Show(String.Format("Submit Failed: {0}", so.Error.Message))
        so.MarkErrorAsHandled()
    End If
    CheckChanges()
End Sub
private void SaveButton_Click(object sender, RoutedEventArgs e)
{
    _customerContext.SubmitChanges(OnSubmitCompleted, null);
}

private void RejectButton_Click(object sender, RoutedEventArgs e)
{
    _customerContext.RejectChanges();
    CheckChanges();
}

private void CustomerGrid_RowEditEnded(object sender, DataGridRowEditEndedEventArgs e)
{
    CheckChanges();
}

private void CheckChanges()
{
    EntityChangeSet changeSet = _customerContext.EntityContainer.GetChanges();
    ChangeText.Text = changeSet.ToString();

    bool hasChanges = _customerContext.HasChanges;
    SaveButton.IsEnabled = hasChanges;
    RejectButton.IsEnabled = hasChanges;
}

private void OnSubmitCompleted(SubmitOperation so)
{
    if (so.HasError)
    {
        MessageBox.Show(string.Format("Submit Failed: {0}", so.Error.Message));
        so.MarkErrorAsHandled();
    }
    CheckChanges();
}

Ausnahmen

Ausnahmetyp Bedingung
InvalidOperationException

Die HasError-Eigenschaft ist false.

Hinweise

Rufen Sie diese Methode auf, wenn Sie die erforderlichen Schritte unternommen haben, um nach einem Fehler in einem Domänenvorgang fortfahren zu können. Indem Sie diese Methode aufrufen, geben Sie an, dass für den Fehler keine Ausnahme ausgelöst wird. Wenn diese Methode für einen fehlgeschlagenen Vorgang nicht aufgerufen wird, wird die in der Complete-Methode angegebene Ausnahme ausgelöst.

Für die IsErrorHandled-Eigenschaft wird das System#ComponentModel#INotifyPropertyChanged#PropertyChanged-Ereignis ausgelöst.

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht sichergestellt.

Plattformen

Entwicklungsplattformen

Windows XP Home Edition, Windows XP Professional, Windows Server 2003 , Windows Server 2008 und Windows 2000

Zielplattformen

Change History

Siehe auch

Verweis

OperationBase-Klasse
OperationBase-Member
System.ServiceModel.DomainServices.Client-Namespace