Поделиться через


Метод 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 равен пустая ссылка (Nothing в Visual Basic).

Замечания

Этот метод упрощает реализацию метода GetChangeBatch службы синхронизации.

Перед вызовом этого метода поставщик должен убедиться, что версии в хранилище метаданных отражают все локальные изменения, включая операции удаления. Это достигается с помощью явного этапа обслуживания метаданных, в котором перечисляются элементы и обновляются их метаданные.

Реализация этого класса, которая возможна через класс SqlMetadataStore, добавляет изменения в пакет в порядке глобальных идентификаторов.

Реализация этого класса, которая возможна через класс SqlMetadataStore, устанавливает свойство IsLastBatch в значение true для возвращаемого пакета изменений, если отсутствуют неотправленные изменения.

Примечания по реализации. Чтобы упростить задачу поставщика, использующего порядок глобальных идентификаторов и имеющего возможность использования диапазонов, изменения следует перечислить и добавить в пакет изменений в порядке глобальных идентификаторов. Первое изменение в возвращаемом пакете открывает новый диапазон. Если после этого пакета не осталось ни одного неотправленного изменения, то в возвращаемом пакете изменений необходимо установить свойство IsLastBatch в значение true. В противном случае Sync Framework повторно вызовет метод GetChangeBatch, чтобы получить следующий пакет изменений.

Пример

В следующем примере выполняется реализация метода KnowledgeSyncProvider.GetChangeBatch передачей параметров методу ReplicaMetadata.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