(0) exportieren Drucken
Alle erweitern

ReplicaMetadata.GetLocalVersions-Methode

Ruft, wenn in einer abgeleiteten Klasse überschrieben, ein Änderungsbatch mit den Elementversionen und Änderungseinheiten ab, die in diesem Replikat gespeichert sind. Diese Elemente und Änderungseinheiten entsprechen den Elementen und Änderungseinheiten, auf die in einem Batch von Änderungen verwiesen wird, der von einem anderen Anbieter gesendet wurde.

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

public abstract IEnumerable<ItemChange> GetLocalVersions (
	ChangeBatch sourceChanges
)
public abstract IEnumerable<ItemChange> GetLocalVersions (
	ChangeBatch sourceChanges
)
public abstract function GetLocalVersions (
	sourceChanges : ChangeBatch
) : IEnumerable<ItemChange>

Parameter

sourceChanges

Der Änderungsbatch, der von einem anderen Anbieter gesendet wurde und auf den Elementspeicher angewendet werden soll, der diesem Replikat zugeordnet ist.

Rückgabewert

Ein Änderungsbatch, der die Versionen von Elementen und Änderungseinheiten enthält, die in diesem Replikat gespeichert sind und den Elementen und Änderungseinheiten entsprechen, auf die in einem Änderungsbatch verwiesen wird, der von einem anderen Anbieter gesendet wurde.

AusnahmetypBedingung

ObjectDisposedException

Das Objekt wurde verworfen oder nicht ordnungsgemäß initialisiert.

ArgumentNullException

sourceChanges ist NULL.

Diese Methode ist bei der Implementierung der ProcessChangeBatch-Methode für Synchronisierungsanbieter hilfreich.

Beim Anwenden von Änderungen werden zur Konflikterkennung die Versionen im Änderungsbatch verwendet, die von dieser Methode zurückgegeben werden.

Hinweise für Implementierer: Der von dieser Methode zurückgegebene Änderungsbatch muss für jeden Eintrag in sourceChanges einen Eintrag enthalten, einschließlich Änderungseinheitseinträgen. Wenn im Elementspeicher ein Element vorhanden ist, muss dessen Eintrag die Versionsinformationen für dieses Replikat enthalten. Wenn ein Element nicht vorhanden ist, muss dessen Version auf SyncVersion.UnknownVersion und dessen ItemChange.ChangeKind-Eigenschaft auf UnknownItem festgelegt werden.

Im folgenden Beispiel wird KnowledgeSyncProvider.ProcessChangeBatch mithilfe von GetLocalVersions implementiert, um die Zielversionen von Quelländerungen abzurufen und das Ergebnis an NotifyingChangeApplier.ApplyChanges zu übergeben:

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);
}

Anzeigen:
© 2014 Microsoft