Класс SyncConflictResolver
Представляет действия, которые должны быть выполнены при возникновении конфликтов во время синхронизации.
Пространство имен: Microsoft.Synchronization.Data
Сборка: Microsoft.Synchronization.Data (в microsoft.synchronization.data.dll)
Синтаксис
'Декларация
<SerializableAttribute> _
Public Class SyncConflictResolver
'Применение
Dim instance As SyncConflictResolver
[SerializableAttribute]
public class SyncConflictResolver
[SerializableAttribute]
public ref class SyncConflictResolver
/** @attribute SerializableAttribute() */
public class SyncConflictResolver
SerializableAttribute
public class SyncConflictResolver
Замечания
Объект SqlCeClientSyncProvider содержит свойство ConflictResolver, которое позволяет производить разрешение конфликтов на клиенте. Для каждого типа конфликта, можно задать значение из ResolveAction перечисления:
ClientWins: эквивалентно установке ApplyAction из Continue.
ServerWins: эквивалентно установке ApplyAction из RetryWithForceWrite.
FireEvent: вызвать событие ApplyChangeFailed, событие по умолчанию, а затем обработать это событие.
Свойство ConflictResolver не обязательно задавать для каждого из типов конфликтов. Конфликты можно разрешать таким же образом, как на сервере, — обрабатывая событие ApplyChangeFailed. Однако свойство ConflictResolver обеспечивает простой способ установки параметров для устранения конфликтов на клиенте. Дополнительные сведения см. в разделе Как обрабатывать конфликты и ошибки в данных.
Пример
В следующем примере кода задается действие по разрешению каждого из типов конфликтов, которые могут возникнуть в службе синхронизации на клиенте. Чтобы просмотреть этот код в контексте полного примера, см. раздел Как обрабатывать конфликты и ошибки в данных.
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
Иерархия наследования
System.Object
Microsoft.Synchronization.Data.SyncConflictResolver
Многопоточное использование
Все общие статические члены (Shared в Visual Basic) можно использовать в многопоточных операциях. Безопасная многопоточная работа с членами экземпляров типа не гарантируется.
См. также
Справочник
Элементы SyncConflictResolver
Пространство имен Microsoft.Synchronization.Data