在该框架中,提供了用于存取维护元数据的一些相应工具类,即Metadata Storage Service。它可帮助存储提供程序的同步元数据,该提供程序表示无法通过其他方式存储元数据的副本。Metadata Storage Service 使用占用较小内存和磁盘空间的轻型数据库,可以随提供程序重新分发,并且安全可靠。
其所提供的API 将元数据存储区与用于访问元数据存储区的接口和方法明确区分开,这样即可实现备用存储区,且对提供程序稍作变更即可使用备用存储区。
当然上面是SDK中的一些说法:)
Metadata Storage Service API中有一些类要着重说明一下:
SqlMetadataStore 类表示通过使用轻型数据库存储元数据来实现的元数据存储区。Metadata Storage Service 提供了 Metadata Storage Service API 的一个完整的实现,该实现使用轻型数据库在文件系统指定位置的一个数据库文件中存储同步所需的所有元数据。此实现的入口点是 SqlMetadataStore。
ReplicaMetadata 类提供对元数据存储区中的副本元数据和项元数据的访问。ReplicaMetadata 还对删除检测和用于实现同步提供程序方法的帮助器提供服务。
ReplicaMetadata 类提供对元数据存储区中的副本元数据和项元数据的访问。ReplicaMetadata 还对删除检测和用于实现同步提供程序方法的帮助器提供服务。
这两个类是今天DEMO的主角,里面的大部分方面都在源码中的MySimpleSyncProvider.cs加以实现。
今天的这个例子,主要是演示了如何使用wcf来同步远程的元数据。当然这个例子是MSF小组公布的一些DEMO中的一个。通过它我们就可以大概了解一下如何使用etadata Storage Service进行维护操作同步元数据以及使用WCF来同步这些修改变更的原数据信息。
![](https://ucc.alicdn.com/grng7az2sxifq/developer-article416458/20241018/9caeb980020c45eca329d21a56499e9a.gif)
当然上面RemoteProviderProxy中的一个重要属性:Sync101WebServiceClient是WCF客户端的实现代码。
当进行同步SyncProvider绑定时,会将RemoteProviderProxy绑定到RemoteProvider属性上,当然通过上面代码,我们会发现,其实最终还是要通过Sync101WebServiceClient实例了进行远程元数据同步操作。下面是WCF接口代码(ISync101WebService.cs):
![](https://ucc.alicdn.com/grng7az2sxifq/developer-article416458/20241018/9caeb980020c45eca329d21a56499e9a.gif)
而最终的实现类Sync101WebService:
![](https://ucc.alicdn.com/grng7az2sxifq/developer-article416458/20241018/9caeb980020c45eca329d21a56499e9a.gif)
到这里服务端的代码就全部列举出来了。当然本文中介绍的是元数据同步,而相应的SyncProvider实现是通过MySimpleSyncProvider.cs文件提供的,当然为了不让我的某些错误理解影响大家阅读源码,这里直接将相应的英文注释也放在这里。
![](https://ucc.alicdn.com/grng7az2sxifq/developer-article416458/20241018/9caeb980020c45eca329d21a56499e9a.gif)
最后,我们只要用下列代码来绑定相应的类并进行同步即可(参见MyTestProgram.cs文件):
![](https://ucc.alicdn.com/grng7az2sxifq/developer-article416458/20241018/9caeb980020c45eca329d21a56499e9a.gif)
好了,今天的内容就到这里了,更多的内容参见这个链接:)
本文转自 daizhenjun 51CTO博客,原文链接:http://blog.51cto.com/daizhj/124367,如需转载请自行联系原作者