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 枚举中的一个值:
ClientWins:等效于设置 Continue 的 ApplyAction。
ServerWins:等效于设置 RetryWithForceWrite 的 ApplyAction。
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
线程安全
此类型的所有公共成员static(在 Visual Basic 中为 Shared) 都是线程安全的。不保证所有实例成员都是线程安全的。