次の方法で共有


ApplyChanges メソッド (ConflictResolutionPolicy, CollisionConflictResolutionPolicy, ChangeBatch, IChangeDataRetriever, SyncKnowledge, ForgottenKnowledge, INotifyingChangeApplierTarget, IConflictLogAccess, SyncSessionContext, SyncCallbacks)

変更バッチに対して競合検出、同時競合の処理、制約の競合の処理、変更の適用、および競合ログの管理を実行します。

名前空間:  Microsoft.Synchronization
アセンブリ:  Microsoft.Synchronization (Microsoft.Synchronization.dll 内)

構文

'宣言
Public Sub ApplyChanges ( _
    resolutionPolicy As ConflictResolutionPolicy, _
    collisionConflictResolutionPolicy As CollisionConflictResolutionPolicy, _
    sourceChanges As ChangeBatch, _
    changeDataRetriever As IChangeDataRetriever, _
    destinationKnowledge As SyncKnowledge, _
    destinationForgottenKnowledge As ForgottenKnowledge, _
    changeApplierTarget As INotifyingChangeApplierTarget, _
    conflictLogAccess As IConflictLogAccess, _
    syncSessionState As SyncSessionContext, _
    syncCallback As SyncCallbacks _
)
'使用
Dim instance As NotifyingChangeApplier
Dim resolutionPolicy As ConflictResolutionPolicy
Dim collisionConflictResolutionPolicy As CollisionConflictResolutionPolicy
Dim sourceChanges As ChangeBatch
Dim changeDataRetriever As IChangeDataRetriever
Dim destinationKnowledge As SyncKnowledge
Dim destinationForgottenKnowledge As ForgottenKnowledge
Dim changeApplierTarget As INotifyingChangeApplierTarget
Dim conflictLogAccess As IConflictLogAccess
Dim syncSessionState As SyncSessionContext
Dim syncCallback As SyncCallbacks

instance.ApplyChanges(resolutionPolicy, _
    collisionConflictResolutionPolicy, _
    sourceChanges, changeDataRetriever, _
    destinationKnowledge, destinationForgottenKnowledge, _
    changeApplierTarget, conflictLogAccess, _
    syncSessionState, syncCallback)
public void ApplyChanges(
    ConflictResolutionPolicy resolutionPolicy,
    CollisionConflictResolutionPolicy collisionConflictResolutionPolicy,
    ChangeBatch sourceChanges,
    IChangeDataRetriever changeDataRetriever,
    SyncKnowledge destinationKnowledge,
    ForgottenKnowledge destinationForgottenKnowledge,
    INotifyingChangeApplierTarget changeApplierTarget,
    IConflictLogAccess conflictLogAccess,
    SyncSessionContext syncSessionState,
    SyncCallbacks syncCallback
)
public:
void ApplyChanges(
    ConflictResolutionPolicy resolutionPolicy, 
    CollisionConflictResolutionPolicy collisionConflictResolutionPolicy, 
    ChangeBatch^ sourceChanges, 
    IChangeDataRetriever^ changeDataRetriever, 
    SyncKnowledge^ destinationKnowledge, 
    ForgottenKnowledge^ destinationForgottenKnowledge, 
    INotifyingChangeApplierTarget^ changeApplierTarget, 
    IConflictLogAccess^ conflictLogAccess, 
    SyncSessionContext^ syncSessionState, 
    SyncCallbacks^ syncCallback
)
member ApplyChanges : 
        resolutionPolicy:ConflictResolutionPolicy * 
        collisionConflictResolutionPolicy:CollisionConflictResolutionPolicy * 
        sourceChanges:ChangeBatch * 
        changeDataRetriever:IChangeDataRetriever * 
        destinationKnowledge:SyncKnowledge * 
        destinationForgottenKnowledge:ForgottenKnowledge * 
        changeApplierTarget:INotifyingChangeApplierTarget * 
        conflictLogAccess:IConflictLogAccess * 
        syncSessionState:SyncSessionContext * 
        syncCallback:SyncCallbacks -> unit 
public function ApplyChanges(
    resolutionPolicy : ConflictResolutionPolicy, 
    collisionConflictResolutionPolicy : CollisionConflictResolutionPolicy, 
    sourceChanges : ChangeBatch, 
    changeDataRetriever : IChangeDataRetriever, 
    destinationKnowledge : SyncKnowledge, 
    destinationForgottenKnowledge : ForgottenKnowledge, 
    changeApplierTarget : INotifyingChangeApplierTarget, 
    conflictLogAccess : IConflictLogAccess, 
    syncSessionState : SyncSessionContext, 
    syncCallback : SyncCallbacks
)

パラメーター

例外

例外 条件
ArgumentNullException

sourceChanges、changeDataRetriever、destinationKnowledge、changeApplierTarget、または syncCallback が null Nothing nullptr unit NULL 参照 (Visual Basic では Nothing) です。

ArgumentOutOfRangeException

または

SyncIdFormatMismatchException
  • sourceChanges に、destinationKnowledge とは異なる形式の忘れられたナレッジがいくつかあります。

または

  • destinationForgottenKnowledge が指定されましたが、destinationKnowledge の形式と異なります。

説明

このメソッドは、sourceChanges で送信される変更と同期先レプリカ内の対応する項目との間で発生する同時実行の競合を検出します。同時実行の競合は、resolutionPolicy で指定されたポリシーに従って解決されます。衝突制約の競合が同期先プロバイダーによって報告されると、このメソッドは、collisionConflictResolutionPolicy で指定されたポリシーに従って競合を解決します。競合の解決方法が設定されていない場合は、競合の発生がこのメソッドによってアプリケーションに通知され、アプリケーションによって競合解決アクションが指定されます。必要に応じて、このメソッドは、changeApplierTarget のメソッドを呼び出し、同期先レプリカへの変更を保存し、未解決の競合を保存します。

同期先バージョンを取得するために、このメソッドは、sourceChanges 内の各項目について、changeApplierTarget の TryGetDestinationVersion を呼び出します。

変更適用元は、ログに記録されている競合を解決し、期限切れの競合をログから削除することによって、conflictLogAccess で指定された競合ログを管理できるようになります。また、変更適用元では、競合ログを使用して、制約の競合をマージした結果として発生する一時的な競合を格納する場合もあります。ログに追加された一時的な競合は、同期セッションの終了前にすべて削除されます。

参照

参照

NotifyingChangeApplierクラス

NotifyingChangeApplier メンバー

ApplyChanges オーバーロード

Microsoft.Synchronization 名前空間