ApplyChanges méthode (ConflictResolutionPolicy, CollisionConflictResolutionPolicy, ChangeBatch, IChangeDataRetriever, IEnumerable(ItemChange), SyncKnowledge, ForgottenKnowledge, INotifyingChangeApplierTarget, IConflictLogAccess, SyncSessionContext, SyncCallbacks)
Effectue des opérations de détection de conflit, de gestion des conflits d'accès concurrentiel, de gestion des conflits de contraintes, d'application des modifications et de gestion du journal des conflits pour un lot de modifications.
Espace de noms : Microsoft.Synchronization
Assembly : Microsoft.Synchronization (dans Microsoft.Synchronization.dll)
Syntaxe
'Déclaration
Public Sub ApplyChanges ( _
resolutionPolicy As ConflictResolutionPolicy, _
collisionConflictResolutionPolicy As CollisionConflictResolutionPolicy, _
sourceChanges As ChangeBatch, _
changeDataRetriever As IChangeDataRetriever, _
destinationVersions As IEnumerable(Of ItemChange), _
destinationKnowledge As SyncKnowledge, _
destinationForgottenKnowledge As ForgottenKnowledge, _
changeApplierTarget As INotifyingChangeApplierTarget, _
conflictLogAccess As IConflictLogAccess, _
syncSessionState As SyncSessionContext, _
syncCallback As SyncCallbacks _
)
'Utilisation
Dim instance As NotifyingChangeApplier
Dim resolutionPolicy As ConflictResolutionPolicy
Dim collisionConflictResolutionPolicy As CollisionConflictResolutionPolicy
Dim sourceChanges As ChangeBatch
Dim changeDataRetriever As IChangeDataRetriever
Dim destinationVersions As IEnumerable(Of ItemChange)
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, _
destinationVersions, destinationKnowledge, _
destinationForgottenKnowledge, _
changeApplierTarget, conflictLogAccess, _
syncSessionState, syncCallback)
public void ApplyChanges(
ConflictResolutionPolicy resolutionPolicy,
CollisionConflictResolutionPolicy collisionConflictResolutionPolicy,
ChangeBatch sourceChanges,
IChangeDataRetriever changeDataRetriever,
IEnumerable<ItemChange> destinationVersions,
SyncKnowledge destinationKnowledge,
ForgottenKnowledge destinationForgottenKnowledge,
INotifyingChangeApplierTarget changeApplierTarget,
IConflictLogAccess conflictLogAccess,
SyncSessionContext syncSessionState,
SyncCallbacks syncCallback
)
public:
void ApplyChanges(
ConflictResolutionPolicy resolutionPolicy,
CollisionConflictResolutionPolicy collisionConflictResolutionPolicy,
ChangeBatch^ sourceChanges,
IChangeDataRetriever^ changeDataRetriever,
IEnumerable<ItemChange^>^ destinationVersions,
SyncKnowledge^ destinationKnowledge,
ForgottenKnowledge^ destinationForgottenKnowledge,
INotifyingChangeApplierTarget^ changeApplierTarget,
IConflictLogAccess^ conflictLogAccess,
SyncSessionContext^ syncSessionState,
SyncCallbacks^ syncCallback
)
member ApplyChanges :
resolutionPolicy:ConflictResolutionPolicy *
collisionConflictResolutionPolicy:CollisionConflictResolutionPolicy *
sourceChanges:ChangeBatch *
changeDataRetriever:IChangeDataRetriever *
destinationVersions:IEnumerable<ItemChange> *
destinationKnowledge:SyncKnowledge *
destinationForgottenKnowledge:ForgottenKnowledge *
changeApplierTarget:INotifyingChangeApplierTarget *
conflictLogAccess:IConflictLogAccess *
syncSessionState:SyncSessionContext *
syncCallback:SyncCallbacks -> unit
public function ApplyChanges(
resolutionPolicy : ConflictResolutionPolicy,
collisionConflictResolutionPolicy : CollisionConflictResolutionPolicy,
sourceChanges : ChangeBatch,
changeDataRetriever : IChangeDataRetriever,
destinationVersions : IEnumerable<ItemChange>,
destinationKnowledge : SyncKnowledge,
destinationForgottenKnowledge : ForgottenKnowledge,
changeApplierTarget : INotifyingChangeApplierTarget,
conflictLogAccess : IConflictLogAccess,
syncSessionState : SyncSessionContext,
syncCallback : SyncCallbacks
)
Paramètres
- resolutionPolicy
Type : Microsoft.Synchronization. . :: . .ConflictResolutionPolicy
Stratégie à utiliser pour résoudre les conflits.
- collisionConflictResolutionPolicy
Type : Microsoft.Synchronization. . :: . .CollisionConflictResolutionPolicy
Stratégie à utiliser pour résoudre les conflits de contraintes de collision.
- sourceChanges
Type : Microsoft.Synchronization. . :: . .ChangeBatch
Lot de modifications du fournisseur de source.
- changeDataRetriever
Type : Microsoft.Synchronization. . :: . .IChangeDataRetriever
Objet qui peut être utilisé pour récupérer des données d'élément du réplica source.
- destinationVersions
Type : System.Collections.Generic. . :: . .IEnumerable< (Of < ( <'ItemChange> ) > ) >
Lot de modifications qui contient les versions des éléments stockés dans le réplica de destination. Ces éléments correspondent aux éléments contenus dans sourceChanges.
- destinationKnowledge
Type : Microsoft.Synchronization. . :: . .SyncKnowledge
Connaissance du réplica de destination.
- destinationForgottenKnowledge
Type : Microsoft.Synchronization. . :: . .ForgottenKnowledge
Connaissance oubliée du réplica de destination.
- changeApplierTarget
Type : Microsoft.Synchronization. . :: . .INotifyingChangeApplierTarget
Objet qui sera appelé pour enregistrer les modifications et conflits.
- conflictLogAccess
Type : Microsoft.Synchronization. . :: . .IConflictLogAccess
Journal des conflits dans lequel sont stockés les conflits différés et les conflits temporaires.
- syncSessionState
Type : Microsoft.Synchronization. . :: . .SyncSessionContext
Informations d'état relatives à la session active.
- syncCallback
Type : Microsoft.Synchronization. . :: . .SyncCallbacks
Rappels qui recevront des notifications à propos des événements d'application de modifications.
Exceptions
Exception | Condition |
---|---|
ArgumentNullException | sourceChanges, changeDataRetriever, destinationKnowledge, changeApplierTarget ou syncCallback est une null Nothing nullptr unit une référence Null (Nothing dans Visual Basic) . |
ArgumentOutOfRangeException |
—ou— collisionResolutionPolicy n'est pas membre de l'énumération CollisionConflictResolutionPolicy. |
SyncIdFormatMismatchException |
—ou—
|
Notes
Cette méthode détecte les conflits d'accès concurrentiel qui se produisent entre les modifications envoyées dans sourceChanges et les éléments correspondants dans le réplica de destination. Elle résout tous les conflits d'accès concurrentiel conformément à la stratégie spécifiée par resolutionPolicy. Lorsque les conflits de contraintes de collision sont signalés par le fournisseur de destination, cette méthode les résout conformément à la stratégie spécifiée par collisionConflictResolutionPolicy. Si aucune stratégie de résolution de conflit n'est définie, cette méthode indique à l'application qu'un conflit s'est produit, et l'application spécifie une action de résolution de conflit. Si nécessaire, cette méthode appelle ensuite des méthodes sur changeApplierTarget pour enregistrer les modifications dans le réplica de destination et enregistrer les conflits non résolus.
L'applicateur de modifications facilite la gestion du journal des conflits spécifié par conflictLogAccess, en résolvant les conflits figurant dans le journal et en supprimant du journal ceux qui sont obsolètes. L'applicateur de modifications peut également utiliser le journal des conflits pour stocker des conflits temporaires résultant de la fusion de conflits de contraintes. Tous les conflits temporaires ajoutés au journal seront supprimés avant la fin de la session de synchronisation.