Compartilhar via


Método ReplicaMetadata.GetLocalVersions

Quando substituído em uma classe derivada, obtém um lote de alterações que contém as versões de itens e unidades de alteração armazenados nesta réplica. Esses itens e unidades de alteração correspondem aos referidos em um lote de alterações enviado de algum outro provedor.

Namespace: Microsoft.Synchronization.MetadataStorage
Assembly: Microsoft.Synchronization.MetadataStorage (em microsoft.synchronization.metadatastorage.dll)

Sintaxe

'Declaração
Public MustOverride Function GetLocalVersions ( _
    sourceChanges As ChangeBatch _
) As IEnumerable(Of ItemChange)
'Uso
Dim instance As ReplicaMetadata
Dim sourceChanges As ChangeBatch
Dim returnValue As IEnumerable(Of ItemChange)

returnValue = instance.GetLocalVersions(sourceChanges)
public abstract IEnumerable<ItemChange> GetLocalVersions (
    ChangeBatch sourceChanges
)
public:
virtual IEnumerable<ItemChange^>^ GetLocalVersions (
    ChangeBatch^ sourceChanges
) abstract
public abstract IEnumerable<ItemChange> GetLocalVersions (
    ChangeBatch sourceChanges
)
public abstract function GetLocalVersions (
    sourceChanges : ChangeBatch
) : IEnumerable<ItemChange>

Parâmetros

  • sourceChanges
    O lote de alterações enviado de outro provedor que está prestes a ser aplicado no repositório de itens associado a esta réplica.

Valor de retorno

Um lote de alterações que contém as versões de itens e unidades de alteração armazenados nesta réplica, que correspondem aos itens e unidades de alteração mencionados em um lote de alterações enviado de algum outro provedor.

Exceções

Tipo de exceção Condição

ObjectDisposedException

O objeto foi descartado ou não foi inicializado corretamente.

ArgumentNullException

sourceChanges é um referência nula (Nothing no Visual Basic).

Comentários

Este método ajuda um provedor de sincronização a implementar seu método ProcessChangeBatch.

Os aplicadores de alterações usam as versões do lote de alterações que é retornado deste método para detecção de conflitos.

Observações para implementadores: O lote de alterações retornado deste método deve conter uma entrada para cada entrada em sourceChanges, incluindo entradas de unidade de alteração. Se houver um item no repositório de itens, sua entrada deve conter as informações de versão desta réplica. Se não houver um item, sua versão deve ser definida como SyncVersion.UnknownVersion e sua propriedade ItemChange.ChangeKind deve ser definida como UnknownItem.

Exemplo

O exemplo a seguir implementa KnowledgeSyncProvider.ProcessChangeBatch usando GetLocalVersions para obter as versões de destino das alterações de origem e transmitindo o resultado para NotifyingChangeApplier.ApplyChanges:

public override void ProcessChangeBatch(ConflictResolutionPolicy resolutionPolicy, ChangeBatch sourceChanges, object changeDataRetriever, SyncCallbacks syncCallbacks, SyncSessionStatistics sessionStatistics)
{
    // Use the metadata storage service to get the local versions of changes received from the source provider.
    IEnumerable<ItemChange> localVersions = _ContactStore.ContactReplicaMetadata.GetLocalVersions(sourceChanges);

    // Use a NotifyingChangeApplier object to process the changes. Note that this object is passed as the INotifyingChangeApplierTarget
    // object that will be called to apply changes to the item store.
    NotifyingChangeApplier changeApplier = new NotifyingChangeApplier(ContactStore.ContactIdFormatGroup);
    changeApplier.ApplyChanges(resolutionPolicy, sourceChanges, (IChangeDataRetriever)changeDataRetriever,
        localVersions, _ContactStore.ContactReplicaMetadata.GetKnowledge(), 
        _ContactStore.ContactReplicaMetadata.GetForgottenKnowledge(), this, _sessionContext, syncCallbacks);
}

Consulte também

Referência

Classe ReplicaMetadata
Membros ReplicaMetadata
Namespace Microsoft.Synchronization.MetadataStorage