SyncConflictResolver-Klasse
Stellt die Aktionen dar, die auszuführen sind, wenn während der Synchronisierung Konflikte auftreten.
Namespace: Microsoft.Synchronization.Data
Assembly: Microsoft.Synchronization.Data (in Microsoft.Synchronization.Data.dll)
Syntax
'Declaration
<SerializableAttribute> _
Public Class SyncConflictResolver
'Usage
Dim instance As SyncConflictResolver
[SerializableAttribute]
public class SyncConflictResolver
[SerializableAttribute]
public ref class SyncConflictResolver
[<SerializableAttribute>]
type SyncConflictResolver = class end
public class SyncConflictResolver
Hinweise
Der SqlCeClientSyncProvider enthält eine ConflictResolver-Eigenschaft, die Sie zum Auflösen von Konflikten auf dem Client verwenden können. Für jeden Konflikttyp können Sie einen Wert aus der ResolveAction-Enumeration festlegen:
ClientWins: identisch mit dem Festlegen des Werts Continue für ApplyAction
ServerWins: identisch mit dem Festlegen des Werts RetryWithForceWrite für ApplyAction
FireEvent: löst den Standard, das ApplyChangeFailed-Ereignis aus und behandelt dann das Ereignis
Der ConflictResolver muss nicht für jeden Konflikttyp festgelegt werden. Sie können Konflikte genau wie auf dem Server auflösen, indem Sie das ApplyChangeFailed-Ereignis behandeln. Die ConflictResolver-Eigenschaft bietet aber dennoch eine einfache Möglichkeit, Konfliktauflösungsoptionen auf dem Client festzulegen. Weitere Informationen dazu finden Sie unter Vorgehensweise: Behandeln von Datenkonflikten und Fehlern.
Beispiele
Im folgenden Codebeispiel wird für jede Art von Konflikt, auf die der Clientsynchronisierungsanbieter stoßen kann, die entsprechende Konfliktauflösungsaktion festgelegt. Eine Darstellung dieses Codes im Kontext eines vollständigen Beispiels finden Sie unter Vorgehensweise: Behandeln von Datenkonflikten und Fehlern.
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
Vererbungshierarchie
System. . :: . .Object
Microsoft.Synchronization.Data..::..SyncConflictResolver
Threadsicherheit
Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.