SaveChangeWithChangeUnitsContext.RecordRecoverableErrorForChangeUnit 方法

指示当将此变更单位的数据保存到项存储区中时出现了一个可恢复错误。

命名空间: Microsoft.Synchronization
程序集: Microsoft.Synchronization(在 microsoft.synchronization.dll 中)

语法

声明
Public Sub RecordRecoverableErrorForChangeUnit ( _
    changeUnitChange As ChangeUnitChange, _
    errorData As RecoverableErrorData _
)
用法
Dim instance As SaveChangeWithChangeUnitsContext
Dim changeUnitChange As ChangeUnitChange
Dim errorData As RecoverableErrorData

instance.RecordRecoverableErrorForChangeUnit(changeUnitChange, errorData)
public void RecordRecoverableErrorForChangeUnit (
    ChangeUnitChange changeUnitChange,
    RecoverableErrorData errorData
)
public:
void RecordRecoverableErrorForChangeUnit (
    ChangeUnitChange^ changeUnitChange, 
    RecoverableErrorData^ errorData
)
public void RecordRecoverableErrorForChangeUnit (
    ChangeUnitChange changeUnitChange, 
    RecoverableErrorData errorData
)
public function RecordRecoverableErrorForChangeUnit (
    changeUnitChange : ChangeUnitChange, 
    errorData : RecoverableErrorData
)

参数

  • changeUnitChange
    导致该错误的变更单位变更。
  • errorData
    有关该错误的其他信息。

异常

异常类型 条件

CreateFailuresMustBeForEntireItemException

SaveChangeWithChangeUnitsContext 对象中包含的保存操作是 Create。在这种情况下,创建整个项必定失败。

备注

调用此方法时,ItemChangeUnitOverride 对象会添加到已知的知识中,并且,系统在同步会话期间将不再枚举该变更单位变更。

示例

以下示例尝试创建或更新目标副本中的变更单位。发生异常时,会为变更单位记录包含异常的可恢复错误,然后继续执行同步。

Case SaveChangeAction.Create, SaveChangeAction.UpdateVersionAndData
    If True Then
        ' Update the item store and metadata store for the specified change unit.
        Try
            Dim cuData As String = DirectCast(context.ChangeData, String())(cuChange.ChangeUnitId.GetByteId())
            _ContactStore.UpdateContactFromSync(change, cuChange, cuData)
        Catch ex As Exception
            Dim errData As New RecoverableErrorData(ex)
            context.RecordRecoverableErrorForChangeUnit(cuChange, errData)
        End Try
        Exit Select
    End If
case SaveChangeAction.Create:
case SaveChangeAction.UpdateVersionAndData:
{
    // Update the item store and metadata store for the specified change unit.
    try
    {
        string cuData = ((string[])context.ChangeData)[cuChange.ChangeUnitId.GetByteId()];
        _ContactStore.UpdateContactFromSync(change, cuChange, cuData);
    }
    catch (Exception ex)
    {
        RecoverableErrorData errData = new RecoverableErrorData(ex);
        context.RecordRecoverableErrorForChangeUnit(cuChange, errData);
    }
    break;
}

请参阅

参考

SaveChangeWithChangeUnitsContext 类
SaveChangeWithChangeUnitsContext 成员
Microsoft.Synchronization 命名空间