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
)
パラメーター
- resolutionPolicy
型 : Microsoft.Synchronization. . :: . .ConflictResolutionPolicy
競合を解決するために使用するポリシーです。
- collisionConflictResolutionPolicy
型 : Microsoft.Synchronization. . :: . .CollisionConflictResolutionPolicy
衝突制約の競合を解決するために使用するポリシーです。
- sourceChanges
型 : Microsoft.Synchronization. . :: . .ChangeBatch
同期元プロバイダーからの変更のバッチです。
- changeDataRetriever
型 : Microsoft.Synchronization. . :: . .IChangeDataRetriever
同期元レプリカから項目データを取得するために使用できるオブジェクトです。
- destinationKnowledge
型 : Microsoft.Synchronization. . :: . .SyncKnowledge
同期先レプリカのナレッジです。
- destinationForgottenKnowledge
型 : Microsoft.Synchronization. . :: . .ForgottenKnowledge
同期先レプリカの忘れられたナレッジです。
- changeApplierTarget
型 : Microsoft.Synchronization. . :: . .INotifyingChangeApplierTarget
変更および競合を保存するために呼び出されるオブジェクトです。
- conflictLogAccess
型 : Microsoft.Synchronization. . :: . .IConflictLogAccess
保留中の競合や一時的な競合が格納される競合ログです。
- syncSessionState
型 : Microsoft.Synchronization. . :: . .SyncSessionContext
現在のセッションに関する状態情報です。
- syncCallback
型 : Microsoft.Synchronization. . :: . .SyncCallbacks
変更の適用イベントに関する通知を受信するコールバックです。
例外
例外 | 条件 |
---|---|
ArgumentNullException | sourceChanges、changeDataRetriever、destinationKnowledge、changeApplierTarget、または syncCallback が null Nothing nullptr unit NULL 参照 (Visual Basic では Nothing) です。 |
ArgumentOutOfRangeException |
または
|
SyncIdFormatMismatchException |
または
|
説明
このメソッドは、sourceChanges で送信される変更と同期先レプリカ内の対応する項目との間で発生する同時実行の競合を検出します。同時実行の競合は、resolutionPolicy で指定されたポリシーに従って解決されます。衝突制約の競合が同期先プロバイダーによって報告されると、このメソッドは、collisionConflictResolutionPolicy で指定されたポリシーに従って競合を解決します。競合の解決方法が設定されていない場合は、競合の発生がこのメソッドによってアプリケーションに通知され、アプリケーションによって競合解決アクションが指定されます。必要に応じて、このメソッドは、changeApplierTarget のメソッドを呼び出し、同期先レプリカへの変更を保存し、未解決の競合を保存します。
同期先バージョンを取得するために、このメソッドは、sourceChanges 内の各項目について、changeApplierTarget の TryGetDestinationVersion を呼び出します。
変更適用元は、ログに記録されている競合を解決し、期限切れの競合をログから削除することによって、conflictLogAccess で指定された競合ログを管理できるようになります。また、変更適用元では、競合ログを使用して、制約の競合をマージした結果として発生する一時的な競合を格納する場合もあります。ログに追加された一時的な競合は、同期セッションの終了前にすべて削除されます。