Classe SyncConflictResolver
Représente les actions à effectuer lorsque des conflits se produisent au cours de la synchronisation.
Espace de noms: Microsoft.Synchronization.Data
Assembly: Microsoft.Synchronization.Data (dans microsoft.synchronization.data.dll)
Syntaxe
'Déclaration
<SerializableAttribute> _
Public Class SyncConflictResolver
'Utilisation
Dim instance As SyncConflictResolver
[SerializableAttribute]
public class SyncConflictResolver
[SerializableAttribute]
public ref class SyncConflictResolver
/** @attribute SerializableAttribute() */
public class SyncConflictResolver
SerializableAttribute
public class SyncConflictResolver
Notes
L'objet SqlCeClientSyncProvider inclut une propriété ConflictResolver que vous pouvez utiliser pour résoudre les conflits sur le client. Pour chaque type de conflit, vous pouvez définir une valeur à partir de l'énumération ResolveAction :
ClientWins : équivaut à définir un objet ApplyAction de Continue.
ServerWins : équivaut à définir un objet ApplyAction de RetryWithForceWrite.
FireEvent : déclencher l'événement ApplyChangeFailed, la valeur par défaut, puis gérer l'événement.
Il n'est pas obligatoire de définir la propriété ConflictResolver pour chaque type de conflit. Vous pouvez résoudre les conflits comme vous le faites sur le serveur en gérant l'événement ApplyChangeFailed. Toutefois, la propriété ConflictResolver permet de spécifier facilement les options de résolution de conflit sur le client. Pour plus d'informations, consultez Procédure : gérer les conflits de données et les erreurs.
Exemple
L'exemple de code suivant définit l'action de résolution pour chaque type de conflit que le fournisseur de synchronisation client peut rencontrer. Pour afficher ce code dans le contexte d'un exemple complet, consultez Procédure : gérer les conflits de données et les erreurs.
this.ConflictResolver.ClientDeleteServerUpdateAction = ResolveAction.ServerWins;
this.ConflictResolver.ClientUpdateServerDeleteAction = ResolveAction.ClientWins;
//If any of the following conflicts or errors occur, the ApplyChangeFailed
//event is raised.
this.ConflictResolver.ClientInsertServerInsertAction = ResolveAction.FireEvent;
this.ConflictResolver.ClientUpdateServerUpdateAction = ResolveAction.FireEvent;
this.ConflictResolver.StoreErrorAction = ResolveAction.FireEvent;
//Log information for the ApplyChangeFailed event and handle any
//ResolveAction.FireEvent cases.
this.ApplyChangeFailed +=new EventHandler<ApplyChangeFailedEventArgs>(SampleClientSyncProvider_ApplyChangeFailed);
Me.ConflictResolver.ClientDeleteServerUpdateAction = ResolveAction.ServerWins
Me.ConflictResolver.ClientUpdateServerDeleteAction = ResolveAction.ClientWins
'If any of the following conflicts or errors occur, the ApplyChangeFailed
'event is raised.
Me.ConflictResolver.ClientInsertServerInsertAction = ResolveAction.FireEvent
Me.ConflictResolver.ClientUpdateServerUpdateAction = ResolveAction.FireEvent
Me.ConflictResolver.StoreErrorAction = ResolveAction.FireEvent
'Log information for the ApplyChangeFailed event and handle any
'ResolveAction.FireEvent cases.
AddHandler Me.ApplyChangeFailed, AddressOf SampleClientSyncProvider_ApplyChangeFailed
Hiérarchie d'héritage
System.Object
Microsoft.Synchronization.Data.SyncConflictResolver
Sécurité des threads
Tous les membres publics statiques (Partagés en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Voir aussi
Référence
Membres SyncConflictResolver
Espace de noms Microsoft.Synchronization.Data