Partager via


Méthode OperationBase.MarkErrorAsHandled

Spécifie qu'une erreur rencontrée dans une opération est gérée.

Espace de noms: System.ServiceModel.DomainServices.Client
Assembly : System.ServiceModel.DomainServices.Client (dans system.servicemodel.domainservices.client.dll)

Utilisation

'Utilisation
Dim instance As OperationBase

instance.MarkErrorAsHandled

Syntaxe

'Déclaration
Public Sub MarkErrorAsHandled
public void MarkErrorAsHandled ()
public:
void MarkErrorAsHandled ()
public void MarkErrorAsHandled ()
public function MarkErrorAsHandled ()

Exemple

L'exemple suivant illustre une méthode de rappel pour une opération d'envoi qui recherche les erreurs et appelle la méthode MarkErrorAsHandled.

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();
}

Exceptions

Type d'exception Condition
InvalidOperationException

La propriété HasError a la valeur false.

Notes

Vous appelez cette méthode lorsque vous avez suivi les étapes requises pour récupérer d'une erreur dans une opération de domaine. En appelant cette méthode, vous indiquez que l'erreur ne sera pas levée comme une exception. Si cette méthode n'est pas appelée pour une opération ayant échoué, l'exception spécifiée dans la méthode Complete est levée.

L'événement System#ComponentModel#INotifyPropertyChanged#PropertyChanged est déclenché pour la propriété IsErrorHandled.

Sécurité des threads

Tous les membres publics statiques (Partagés dans Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Plateformes

Plateformes de développement

Windows XP Édition familiale, Windows XP Professionnel, Windows Server 2003 , Windows Server 2008 et Windows 2000

Plateformes cibles

Change History

Voir aussi

Référence

Classe OperationBase
Membres OperationBase
Espace de noms System.ServiceModel.DomainServices.Client