Partager via


Méthode ReplicaMetadata.GetLocalVersions

En cas de substitution dans une classe dérivée, obtient un lot de modifications qui contient les versions des éléments et les unités de modification stockées dans ce réplica. Ces éléments et unités de modification correspondent à ceux référencés dans un lot de modifications envoyé à partir d'un autre fournisseur.

Espace de noms: Microsoft.Synchronization.MetadataStorage
Assembly: Microsoft.Synchronization.MetadataStorage (dans microsoft.synchronization.metadatastorage.dll)

Syntaxe

'Déclaration
Public MustOverride Function GetLocalVersions ( _
    sourceChanges As ChangeBatch _
) As IEnumerable(Of ItemChange)
'Utilisation
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>

Paramètres

  • sourceChanges
    Lot de modifications envoyé d'un autre fournisseur qui est sur le point d'être appliqué au magasin d'éléments associé à ce réplica.

Valeur de retour

Lot de modifications contenant les versions des éléments et les unités de modification stockées dans ce réplica qui correspond aux éléments et aux unités de modification référencés dans un lot de modifications qui est envoyé à partir d'un autre fournisseur.

Exceptions

Type d'exception Condition

ObjectDisposedException

L'objet a été supprimé ou n'a pas été initialisé correctement.

ArgumentNullException

sourceChanges est une référence nulle (Rien dans Visual Basic).

Notes

Cette méthode aide un fournisseur de synchronisation à implémenter sa méthode ProcessChangeBatch.

Les applicateurs de modifications utilisent les versions dans le lot des modifications retournées à partir de cette méthode pour la détection de conflit.

Remarques à l'attention des implémenteurs : Le lot de modifications retourné à partir de cette méthode doit contenir une entrée pour chaque entrée dans sourceChanges, y compris les entrées d'unité de modification. Si un élément existe dans le magasin d'éléments, son entrée doit contenir ses informations de version pour ce réplica. Si un élément n'existe pas, sa version doit avoir la valeur SyncVersion.UnknownVersion et sa propriété ItemChange.ChangeKind doit avoir la valeur UnknownItem.

Exemple

L'exemple suivant implémente KnowledgeSyncProvider.ProcessChangeBatch en utilisant GetLocalVersions pour obtenir les versions de destination des modifications de la source et en passant le résultat à 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);
}

Voir aussi

Référence

Classe ReplicaMetadata
Membres ReplicaMetadata
Espace de noms Microsoft.Synchronization.MetadataStorage