Microsoft.Synchronization.MetadataStorage 名前空間
Metadata Storage Service は、同期メタデータの格納と処理をサポートしています。
Metadata Storage Service はそのクラスの多くを抽象クラスとして定義するので、ストレージ サービスの作成者は一連のカスタム クラスを実装して、任意の種類のデータ ストアにメタデータを格納できます。
また、Metadata Storage Service では、簡易データベースを使用して同期メタデータをファイル システム内の 1 つのデータベース ファイルに格納するクラスも実装できます。
メタデータの初期化
すべてのメタデータ ストアのメイン クラスは MetadataStore です。この抽象基本クラスには、メタデータ ストア内のレプリカ メタデータを初期化して取得したり、データベースのトランザクションを開始または終了したりするためのメソッドが含まれています。通常、この基本クラスをオーバーライドするクラスからは、メタデータ ストアを作成して開くためのメソッド (SqlMetadataStore など) が提供されます。このクラスには、メタデータ ストアを作成して開くためのメソッドが含まれています。
レプリカ メタデータは、InitializeReplicaMetadata を使用することによって、メタデータ ストアで初期化されます。このメソッドに対して FieldSchema パラメーターを使用すると、一連のカスタム フィールドを作成できます。これらのフィールドを使用すると、項目に関する追加のメタデータをメタデータ ストアに格納できるようになります。IndexSchema パラメーターを使用すると、一連のフィールドをインデックスとして定義できます。インデックスは、メタデータ ストア内の項目を効率的に見つけるために使用されます。
レプリカのメタデータのカプセル化
ReplicaMetadata クラスは、特定のレプリカのメタデータをすべてカプセル化します。レプリカ メタデータには、GetKnowledge や ReplicaId などのメンバーを使用してアクセスできます。
このクラスのいくつかのメソッドは、同期プロバイダー メソッドの実装に役立ちます。たとえば、ReplicaMetadata..::..GetChangeBatch では、KnowledgeSyncProvider の GetChangeBatch メソッドのほとんどの作業を実行できます。
変更適用元が必要とする変更バッチ項目のローカル バージョンを見つけるには、KnowledgeSyncProvider の ProcessChangeBatch メソッドから GetLocalVersions を呼び出します。
ReplicaMetadata には DeleteDetector も含まれています。プロバイダーは、このプロパティに含まれているオブジェクトを使用すると、どの項目が項目ストアから削除されており、削除マークをメタデータ ストアで付ける必要があるかを検出できます。
項目のメタデータのカプセル化
項目メタデータは、ReplicaMetadata メソッドを使用して、FindItemMetadataById や FindItemMetadataByIndexedFields などの項目 ID かインデックス付きフィールドで検索するとメタデータ ストアで見つかります。ItemMetadata クラスは、特定の項目に関するすべてのメタデータをカプセル化します。このクラスには、ChangeVersion、CreationVersion、GlobalId や IsDeleted などの標準の同期メタデータが含まれています。また、レプリカ メタデータを初期化したときに定義されたカスタム フィールドにアクセスするための複数のメソッドも含まれています。
クラス
クラス | 説明 | |
---|---|---|
ChangeUnitMetadata | 同期スコープ内の項目に含まれている変更単位に関連付けられているメタデータを表します。 | |
DeleteDetector | DeleteDetector は、派生クラスによって実装された場合、どの項目がレプリカから削除されたかを特定します。これらの項目は、メタデータ ストア内で削除済みとマークする必要があります。 | |
ExplicitTransactionRequiredException | メタデータ ストアで明示的なトランザクションが開始されていることを必要とするメソッドが呼び出されたときにスローされる例外です。 | |
FieldSchema | メタデータ ストア内の項目のカスタム フィールドを定義するスキーマ情報を格納します。 | |
IndexSchema | メタデータ ストアにある項目の検索を効率化するために使用される単一または複数列インデックスを表します。 | |
ItemMetadata | オーバーライドされると、同期スコープ内の項目に関連付けられているメタデータを表します。 | |
ItemMetadataNotFoundException | 指定された ID またはカスタム フィールド値を持つ項目がメタデータ ストア内で見つからなかった場合にスローされる例外です。 | |
KeyUniquenessException | 無効な ID または重複した ID を持つ項目を保存しようとしたときにスローされる例外です。 | |
MetadataFieldNotFoundException | 名前付きカスタム フィールドが存在しない場合にスローされる例外です。 | |
MetadataStorageEngineException | メタデータ ストレージ エンジンに対する操作に失敗するとスローされる例外です。 | |
MetadataStore | オーバーライドされると、メタデータ ストアを表し、レプリカ メタデータ オブジェクトを取得するためのメソッドを提供します。レプリカ メタデータ オブジェクトは、特定のレプリカに関するメタデータにアクセスするために使用されます。Metadata Storage Service API を使用するすべてのメタデータ ストアに対応した抽象基本クラスです。 | |
MetadataStoreException | すべてのメタデータ ストレージ例外の基本クラスです。 | |
MetadataStoreInvalidOperationException | オブジェクトの現在の状態に対するメソッド呼び出しが無効な場合にスローされる例外です。 | |
MetadataStoreProviderVersionMismatchException | DeserializeReplicaMetadata が呼び出され、指定された想定されるプロバイダー互換性バージョンがシリアル化されたメタデータに格納されているプロバイダー バージョンと一致しない場合にスローされる例外です。 | |
MultipleReplicasInStoreException | GetSingleReplicaMetadata が呼び出されたときにメタデータ ストアに複数のレプリカのメタデータが格納されている場合にスローされる例外です。 | |
ReplicaMetadata | オーバーライドされると、メタデータ ストア内のレプリカのメタデータと項目のメタデータへのアクセスを提供します。また、ReplicaMetadata は、削除検出サービスおよび同期プロバイダー メソッドを実装するためのヘルパーも提供します。 | |
ReplicaMetadataAlreadyExistsException | メタデータ ストアで新しいレプリカ メタデータを作成しようとした場合に、そのレプリカのメタデータがメタデータ ストアに既に存在するとスローされる例外です。 | |
ReplicaMetadataInUseException | 特定のレプリカ ID に関連した複数のアクティブな ReplicaMetadata インスタンスを作成しようとしたときにスローされる例外です。 | |
ReplicaMetadataNotFoundException | 指定したレプリカ ID のレプリカ メタデータがメタデータ ストアに存在しない場合にスローされる例外です。 | |
SqlMetadataStore | 簡易データベースを使用してメタデータを格納するために実装されるメタデータ ストアを表します。 | |
SqlSyncFieldValue | 項目のカスタム フィールドの値を表します。 | |
SqlSyncMetadataStoreSerializer | 正規のメタデータ ファイル形式とバージョン固有の Metadata Storage Service ストア形式との間で、レプリカのメタデータをシリアル化および逆シリアル化します。 | |
SyncFieldValue | 派生クラスでオーバーライドされると、項目のカスタム フィールドの値を表します。 | |
SyncMetadataStoreSerializer | 派生クラスでオーバーライドされると、レプリカのメタデータをシリアル化および逆シリアル化します。 | |
UpgradeStartEventArgs | MetadataStoreUpgradeStart イベントのデータを提供します。 | |
VersionNotSupportedException | レプリカ メタデータをメタデータ ストアから取得しようとした際、メタデータのバージョンがメタデータ ストアの実装によってサポートされていない場合にスローされる例外です。 |
インターフェイス
インターフェイス | 説明 | |
---|---|---|
IProviderUpgradeCallback | 派生クラスによって実装された場合、プロバイダーのバージョンが変更されたために実行されたメタデータ ストアのアップグレード中に発生したイベントをプロバイダーに通知するために Sync Framework が呼び出すことができるメソッドを表します。 |
デリゲート
デリゲート | 説明 | |
---|---|---|
ReplicaMetadata. . :: . .ItemFilterCallback | 項目の変更を変更バッチに含めるかどうかを決定するメソッドを表します。 |