首页 / 网页编程 / ASP.NET / 微软同步框架(MSF)入门之七--定制同步提供程序(SyncProvider)
        
            微软同步框架(MSF)入门之七--定制同步提供程序(SyncProvider)2012-01-12 博客园 代震军在上一篇文章当中,简要介绍了一下如何使用现有的 SyncProvider 对象来进行文件(夹)同步。今天的这个DEMO主要演示通过继承方式来实现自己的SyncProvider来进行相关同步元数据存储,当然这样做会给我们以额外的好处,比如按自己的意愿来创建、版本和删除项的信息等。另外就是对同步应用程序的工作原理也会有一个大概的认识。在开始正文之前,我在网上看到了这篇文章对MSF的负责报道,当然它所说的部分观点我同意。MSF的确不那么好学,官方的文档的确也难懂,但事情总要慢慢来,只有通过不断积累不断进步,产品才会做的越来越好。就让我们一起与MSF共同进步吧!好了,开始今天的正文。首先要解释一下自定义同步程序(本DEMO中为“MySyncProvider”)所要继承和实现的接口:  KnowledgeSyncProvider:表示使用知识执行同步的同步提供程序IChangeDataRetriever:表示目标提供程序从源提供程序检索项数据所使用的机制。INotifyingChangeApplierTarget:表示可将项变更保存到副本中的对象备注:当使用NotifyingChangeApplier对象以帮助将变更应用到目标副本时,目标提供程序必须实现此接口。INotifyingChangeApplierTarget对象传递给ApplyChanges方法。然后,NotifyingChangeApplier对象调用INotifyingChangeApplierTarget方法,将变更和冲突保存到目标副本中。KnowledgeSyncProvider方法定义如下主要方法:BeginSession 在派生类中重写时,通知提供程序它将联接一个同步会话。EndSession 在派生类中重写时,通知提供程序它所登记到的同步会话已经完成。GetChangeBatch 在派生类中重写时,获取包含某些项的项元数据的变更批,这些项不包含在来自目标提供程序的指定知识中。GetFullEnumerationChangeBatch 在派生类中重写时,获取作为完全枚举一部分的变更批,该变更批中包含ID大于指定下限的项的项元数据。GetSyncBatchParameters 在派生类中重写时,获取要包含在变更批中的项变更数,以及同步作用域的当前知识。ProcessChangeBatch 在派生类中重写时,通过检测冲突和将变更应用到项存储区中来处理变更组。ProcessFullEnumerationChangeBatch 在派生类中重写时,通过将变更应用到项存储区中来处理变更组,以用于完全枚举。