Share via


DeleteDetector クラス

DeleteDetector は、派生クラスによって実装された場合、どの項目がレプリカから削除されたかを特定します。これらの項目は、メタデータ ストア内で削除済みとマークする必要があります。

名前空間:  Microsoft.Synchronization.MetadataStorage
アセンブリ:  Microsoft.Synchronization.MetadataStorage (Microsoft.Synchronization.MetadataStorage.dll 内)

構文

'宣言
Public MustInherit Class DeleteDetector
'使用
Dim instance As DeleteDetector
public abstract class DeleteDetector
public ref class DeleteDetector abstract
[<AbstractClassAttribute>]
type DeleteDetector =  class end
public abstract class DeleteDetector

説明

このクラスを使用すると、ストアが削除を追跡しない場合に、プロバイダーはメタデータのメンテナンスを実行できるようになります。

ストアから削除されたものとして検出されたすべての項目の一覧を取得するには、FindUnreportedItems を呼び出します。次に、この一覧を列挙して、各項目をメタデータ ストア内で削除済みとマーク付けできます。これは、メタデータが最新のものであることを確認するために、同期セッションの前に実行する必要があります。

項目の変更後、変更した項目を保存するために ReplicaMetadata..::..SaveItemMetadata を呼び出した場合、または未変更だがアクティブなままの項目に対して ReportLiveItemByIndexedField または ReportLiveItemByIndexedFields を呼び出した場合、項目にはアクティブなメタデータ エントリが存在します。未変更の項目に対して ReplicaMetadata..::..SaveItemMetadata を呼び出しても、その項目はアクティブとマークされないので注意してください。

MarkAllItemsUnreported を呼び出すと、以降の検出パスの削除検出がリセットされます。

このクラスの Metadata Storage Service 実装を使用するには、SqlMetadataStore を使用して、ReplicaMetadata クラスを作成するか、開きます。DeleteDetector には、ReplicaMetadata..::..DeleteDetector を使用してアクセスできます。

継承に関するメモ

DeleteDetector から継承する場合は、次の各メンバーをオーバーライドする必要があります。

削除された項目を検出するには、DeleteDetector の実装で、次の上位レベル アルゴリズムを使用する必要があります。

  1. アクティブと報告される項目をすべて記録します。項目は、そのメタデータが変更されて保存されたとき、またはプロバイダーが明示的に項目をアクティブと報告したときにアクティブと報告されます。

  2. アクティブでないメタデータ エントリは削除済みと報告する必要があります。

継承階層

System. . :: . .Object
  Microsoft.Synchronization.MetadataStorage..::..DeleteDetector

スレッド セーフ

この型の public static (Visual Basic では Shared) のメンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

参照

参照

DeleteDetector メンバー

Microsoft.Synchronization.MetadataStorage 名前空間

その他の技術情報

削除済み項目の検出