Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Rappresenta le azioni da intraprendere quando si verificano conflitti durante la sincronizzazione.
Spazio dei nomi: Microsoft.Synchronization.Data
Assembly: Microsoft.Synchronization.Data (in microsoft.synchronization.data.dll)
Sintassi
'Dichiarazione
<SerializableAttribute> _
Public Class SyncConflictResolver
'Utilizzo
Dim instance As SyncConflictResolver
[SerializableAttribute]
public class SyncConflictResolver
[SerializableAttribute]
public ref class SyncConflictResolver
/** @attribute SerializableAttribute() */
public class SyncConflictResolver
SerializableAttribute
public class SyncConflictResolver
Osservazioni
SqlCeClientSyncProvider include una proprietà ConflictResolver utilizzabile per risolvere i conflitti sul client. Per ogni tipo di conflitto, è possibile impostare un valore dall'enumerazione ResolveAction:
ClientWins: equivalente all'impostazione ApplyAction di Continue.
ServerWins: equivalente all'impostazione ApplyAction di RetryWithForceWrite.
FireEvent: attivare l'evento ApplyChangeFailed, l'impostazione predefinita e quindi gestire l'evento.
Non è obbligatorio impostare ConflictResolver per ogni tipo di conflitto. È possibile risolvere i conflitti in modo analogo a quanto avviene nel server, ovvero gestendo l'evento ApplyChangeFailed. La proprietà ConflictResolver rappresenta una soluzione più semplice per specificare le opzioni di risoluzione dei conflitti nel client. Per ulteriori informazioni, vedere Procedura: gestire conflitti di dati ed errori.
Esempio
Nell'esempio di codice seguente viene impostata l'azione di risoluzione per ogni tipo di conflitto rilevato dal provider di sincronizzazione client. Per visualizzare questo codice nel contesto di un esempio completo, vedere Procedura: gestire conflitti di dati ed errori.
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
Gerarchia di ereditarietà
System.Object
Microsoft.Synchronization.Data.SyncConflictResolver
Thread Safety
Tutti i membri statici pubblici (Shared in Visual Basic) di questo tipo sono thread safe. I membri di istanza non hanno garanzia di essere thread safe.
Vedere anche
Riferimento
Membri SyncConflictResolver
Spazio dei nomi Microsoft.Synchronization.Data