Поделиться через


Класс 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
[<SerializableAttribute>]
type SyncConflictResolver =  class end
public class SyncConflictResolver

Замечания

Объект SqlCeClientSyncProvider содержит свойство ConflictResolver, которое позволяет производить разрешение конфликтов на клиенте. Для каждого типа конфликта, можно задать значение из ResolveAction перечисления:

Свойство 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