检测已删除的项

元数据存储服务提供了删除检测服务,以便为表示不跟踪项删除操作的副本的提供程序提供帮助。此服务确定从副本中删除了哪些项,以便在元数据存储区中将这些项标记为已删除。

用于检测删除的算法

删除检测器使用以下高级算法来检测已删除的项:

  1. 它记录所有报告为活动的项。当变更并保存了某项的元数据,或者提供程序将其显式报告为活动时,会将该项报告为活动状态。

  2. 所有不活动的元数据条目将报告为已删除。

  3. 提供程序枚举不活动的元数据条目,并将其标记为已删除。

使用托管代码检测删除

可通过 ReplicaMetadata 对象的 DeleteDetector 属性访问删除检测器。

若要重置删除检测器以便用于新的检测传递,请调用 MarkAllItemsUnreported

使用 SaveItemMetadata 变更并保存某项后,该项将隐式存在一个活动的元数据条目。通过调用 ReportLiveItemById 可以将某项显式保留为活动状态,即便未对该项进行任何变更。

通过调用 FindUnreportedItems 获取当前检测为已删除的项的列表。必须使用 MarkAsDeleted 在元数据存储区中将此列表中的项标记为已删除。

使用非托管代码检测删除

删除检测器属于 IReplicaMetadata 对象的一部分。

若要重置删除检测器以便用于新的检测传递,请调用 IReplicaMetadata::ResetReportingWatermark

使用 IReplicaMetadata::SaveItemMetadata 变更并保存某项后,该项将隐式存在一个活动的元数据条目。通过调用 IReplicaMetadata::ReportLiveItemByGlobalId 可以将某项显式保留为活动状态,即便未对该项进行任何变更。

通过调用 IReplicaMetadata::GetUnreportedItems 获取当前检测为已删除的项的列表。必须使用 IItemMetadata::MarkAsDeleted 在元数据存储区中将此列表中的项标记为已删除。

请参阅

参考

IReplicaMetadata 接口
ReplicaMetadata
DeleteDetector

其他资源

Sync Framework Metadata Storage Service