Classe SyncConflictResolver
Representa as ações a serem executadas quando ocorrem conflitos durante a sincronização.
Namespace: Microsoft.Synchronization.Data
Assembly: Microsoft.Synchronization.Data (em microsoft.synchronization.data.dll)
Sintaxe
'Declaração
<SerializableAttribute> _
Public Class SyncConflictResolver
'Uso
Dim instance As SyncConflictResolver
[SerializableAttribute]
public class SyncConflictResolver
[SerializableAttribute]
public ref class SyncConflictResolver
/** @attribute SerializableAttribute() */
public class SyncConflictResolver
SerializableAttribute
public class SyncConflictResolver
Comentários
SqlCeClientSyncProvider inclui uma propriedade ConflictResolver que pode ser usada para resolver conflitos no cliente. Para cada tipo de conflito, você pode definir um valor a partir da enumeração ResolveAction:
ClientWins: equivalente a definir ApplyAction de Continue.
ServerWins: equivalente a definir ApplyAction de RetryWithForceWrite.
FireEvent: disparar o evento ApplyChangeFailed (o padrão) e, em seguida, tratar o evento.
Não há nenhum requisito para definir ConflictResolver para cada tipo de conflito. Você pode resolver conflitos enquanto estiver no servidor tratando o evento ApplyChangeFailed. No entanto, a propriedade ConflictResolver fornece uma maneira fácil de especificar as opções de resolução de conflitos no cliente. Para obter mais informações, consulte Como tratar conflitos de dados e erros.
Exemplo
O exemplo de código a seguir define a ação de resolução para cada tipo de conflito que o provedor de sincronização do cliente pode encontrar. Para exibir esse código no contexto de um exemplo completo, consulte Como tratar conflitos de dados e erros.
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
Hierarquia de herança
System.Object
Microsoft.Synchronization.Data.SyncConflictResolver
Segurança de thread
Qualquer membro estático público (Compartilhado no Visual Basic) deste tipo é protegido por thread. Não há garantia de que qualquer membro de instância esteja protegido por thread.
Consulte também
Referência
Membros SyncConflictResolver
Namespace Microsoft.Synchronization.Data