Compartir a través de


Método OperationBase.MarkErrorAsHandled

Especifica que se ha controlado un error que se había detectado en una operación.

Espacio de nombres: System.ServiceModel.DomainServices.Client
Ensamblado: System.ServiceModel.DomainServices.Client (en system.servicemodel.domainservices.client.dll)

Uso

'Uso
Dim instance As OperationBase

instance.MarkErrorAsHandled

Sintaxis

'Declaración
Public Sub MarkErrorAsHandled
public void MarkErrorAsHandled ()
public:
void MarkErrorAsHandled ()
public void MarkErrorAsHandled ()
public function MarkErrorAsHandled ()

Ejemplo

El ejemplo siguiente muestra un método de devolución de llamada para una operación de envío que comprueba si hay errores y llama al método 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();
}

Excepciones

Tipo de excepción Condición
InvalidOperationException

La propiedad HasError es false.

Notas

Puede llamar a este método cuando haya emprendido los pasos necesarios para recuperarse de un error en una operación de dominio. Al llamar a este método, indica que el error no se producirá como una excepción. Si no se llama a este método para una operación con error, se producirá la excepción que se ha especificado en el método Complete.

El evento System#ComponentModel#INotifyPropertyChanged#PropertyChanged se genera para la propiedad IsErrorHandled.

Seguridad para subprocesos

Cualquier miembro estático público (Compartidos en Visual Basic) de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Plataformas

Plataformas de desarrollo

Microsoft Windows XP Home Edition, Windows XP Professional, Windows Server 2003 , Windows Server 2008 y Windows 2000

Plataformas de destino

Change History

Vea también

Referencia

Clase OperationBase
Miembros OperationBase
Espacio de nombres System.ServiceModel.DomainServices.Client