GetLocalVersions Método

Cuando se invalida en una clase derivada, obtiene un lote de cambios que contiene las versiones de los elementos y las unidades de cambio que están almacenados en esta réplica. Estos elementos y unidades de cambio corresponden a los elementos y unidades de cambio a los que se hace referencia en un lote de cambios enviados desde algún otro proveedor.

Espacio de nombres:  Microsoft.Synchronization.MetadataStorage
Ensamblado:  Microsoft.Synchronization.MetadataStorage (en Microsoft.Synchronization.MetadataStorage.dll)

Sintaxis

'Declaración
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
abstract GetLocalVersions : 
        sourceChanges:ChangeBatch -> IEnumerable<ItemChange> 
public abstract function GetLocalVersions(
    sourceChanges : ChangeBatch
) : IEnumerable<ItemChange>

Parámetros

Valor devuelto

Tipo: System.Collections.Generic. . :: . .IEnumerable< (Of < ( <'ItemChange> ) > ) >
Un lote de cambios que contiene las versiones de los elementos y las unidades de cambio almacenados en esta réplica que corresponden a los elementos y las unidades de cambio a que se hace referencia en un lote de cambios enviado desde algún otro proveedor.

Excepciones

Excepción Condición
ObjectDisposedException

El objeto se ha eliminado o no se ha inicializado correctamente.

ArgumentNullException

sourceChanges es un valor null Nothing nullptr unit es una referencia NULL (Nothing en Visual Basic). .

Notas

Este método ayuda a un proveedor de sincronización a implementar su método ProcessChangeBatch.

Los aplicadores de cambios usan las versiones del lote de cambios que devuelve este método para la detección de conflictos.

Notas a los implementadores

El lote de cambios que devuelve este método debe contener una entrada para cada entrada de sourceChanges, incluyendo entradas de unidad de cambio. Si existe un elemento en el almacén de elementos, su entrada debe contener su información de versión para esta réplica. Si un elemento no existe, su versión debe estar establecida en SyncVersion.UnknownVersion y su propiedad ItemChange.ChangeKind debe estar establecida en UnknownItem.

Ejemplos

En el ejemplo siguiente se implementa KnowledgeSyncProvider..::..ProcessChangeBatch utilizando GetLocalVersions para obtener las versiones de destino de los cambios de origen y pasar el resultado a 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);
}

Vea también

Referencia

ReplicaMetadata Clase

ReplicaMetadata Miembros

Microsoft.Synchronization.MetadataStorage Espacio de nombres