Share via


OperationBase.MarkErrorAsHandled 메서드

작업에서 발생한 오류가 처리되도록 지정합니다.

네임스페이스: System.ServiceModel.DomainServices.Client
어셈블리: system.servicemodel.domainservices.client.dll의 System.ServiceModel.DomainServices.Client

사용법

‘사용 방법
Dim instance As OperationBase

instance.MarkErrorAsHandled

구문

‘선언
Public Sub MarkErrorAsHandled
public void MarkErrorAsHandled ()
public:
void MarkErrorAsHandled ()
public void MarkErrorAsHandled ()
public function MarkErrorAsHandled ()

예제

다음 예제에서는 오류를 확인하고 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();
}

예외

예외 형식 조건
InvalidOperationException

HasError 속성이 false인 경우

설명

도메인 작업의 오류를 복구하는 데 필요한 단계를 수행한 경우 이 메서드를 호출합니다. 이 메서드를 호출하면 오류가 예외로 throw되지 않습니다. 실패한 작업에 대해 이 메서드를 호출하지 않는 경우 Complete 메서드에 지정된 예외가 throw됩니다.

System#ComponentModel#INotifyPropertyChanged#PropertyChanged 이벤트는 IsErrorHandled 속성에 대해 발생합니다.

스레드 보안

이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 모든 인스턴스 멤버는 스레드로부터 안전하지 않을 수 있습니다.

플랫폼

개발 플랫폼

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

대상 플랫폼

Change History

참고 항목

참조

OperationBase 클래스
OperationBase 멤버
System.ServiceModel.DomainServices.Client 네임스페이스