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 네임스페이스