ReplicaMetadata.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
public abstract IEnumerable<ItemChange> GetLocalVersions (
ChangeBatch sourceChanges
)
public abstract function GetLocalVersions (
sourceChanges : ChangeBatch
) : IEnumerable<ItemChange>
Parámetros
- sourceChanges
Lote de cambios enviado desde otro proveedor que están a punto de aplicarse al almacén de elementos asociado a esta réplica.
Valor devuelto
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
Tipo de excepción | Condición |
---|---|
El objeto se ha eliminado o no se ha inicializado correctamente. |
|
sourceChanges es un valor es una referencia nula (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.
Ejemplo
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