ReplicaMetadata.GetChangeBatch メソッド

派生クラスでオーバーライドされると、同期先プロバイダーからの指定されたナレッジに含まれていない項目に関する、項目メタデータが含まれた変更バッチを取得します。

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

構文

'宣言
Public MustOverride Function GetChangeBatch ( _
    batchSize As UInteger, _
    destinationKnowledge As SyncKnowledge _
) As ChangeBatch
'使用
Dim instance As ReplicaMetadata
Dim batchSize As UInteger
Dim destinationKnowledge As SyncKnowledge
Dim returnValue As ChangeBatch

returnValue = instance.GetChangeBatch(batchSize, destinationKnowledge)
public abstract ChangeBatch GetChangeBatch (
    uint batchSize,
    SyncKnowledge destinationKnowledge
)
public:
virtual ChangeBatch^ GetChangeBatch (
    unsigned int batchSize, 
    SyncKnowledge^ destinationKnowledge
) abstract
public abstract ChangeBatch GetChangeBatch (
    UInt32 batchSize, 
    SyncKnowledge destinationKnowledge
)
public abstract function GetChangeBatch (
    batchSize : uint, 
    destinationKnowledge : SyncKnowledge
) : ChangeBatch

パラメーター

  • batchSize
    作成されるバッチのサイズです。
  • destinationKnowledge
    同期先プロバイダーからのナレッジです。

戻り値

同期先プロバイダーからの指定されたナレッジに含まれていない項目に関する、項目メタデータが含まれた変更バッチです。

例外

例外の種類 条件

ObjectDisposedException

オブジェクトが破棄されているか、正しく初期化されていません。

ArgumentOutOfRangeException

batchSize が 0 です。

ArgumentNullException

destinationKnowledge が NULL 参照 (Visual Basic では Nothing) です。 です。

解説

このメソッドを使用すると、同期プロバイダーは GetChangeBatch メソッドを実装できるようになります。

プロバイダーは、このメソッドを呼び出す前に、メタデータ ストア内のバージョンにローカルの変更 (削除など) がすべて反映されていることを確認する必要があります。これを行うには、メタデータを明示的にメンテナンスすることによって、項目を列挙し、そのメタデータを更新します。

SqlMetadataStore を使用することによって可能になるこのクラスの実装では、変更がグローバル ID の順で変更バッチに追加されます。

SqlMetadataStore を使用することによって可能になるこのクラスの実装では、送信する変更がなくなった場合に返される変更バッチで IsLastBatchtrue に設定されます。

実装に関するメモ : グローバル ID 順を使用しており、範囲を使用できるプロバイダーをサポートするには、変更を列挙してから、変更バッチにグローバル ID 順で追加する必要があります。返された変更バッチ内の最初の変更によって新しい範囲が開始されます。 このバッチの後で送信する変更がもうない場合は、返される変更バッチで IsLastBatchtrue に設定する必要があります。そうしないと、次の変更バッチを取得するために、Sync Framework によって GetChangeBatch が再度呼び出されます。

次の例では、パラメーターを ReplicaMetadata.GetChangeBatch に渡して KnowledgeSyncProvider.GetChangeBatch を実装します。

public override ChangeBatch GetChangeBatch(uint batchSize, SyncKnowledge destinationKnowledge, out object changeDataRetriever)
{
    // Return this object as the IChangeDataRetriever object that is called to retrieve item data.
    changeDataRetriever = this;

    // Use metadata storage service to get a batch of changes.
    return _ContactStore.ContactReplicaMetadata.GetChangeBatch(batchSize, destinationKnowledge);
}

参照

リファレンス

ReplicaMetadata クラス
ReplicaMetadata メンバー
Microsoft.Synchronization.MetadataStorage 名前空間