TryGetDestinationVersion-Methode

Ruft die Version eines im Zielreplikat gespeicherten Elements ab.

Namespace:  Microsoft.Synchronization
Assembly:  Microsoft.Synchronization (in Microsoft.Synchronization.dll)

Syntax

'Declaration
Function TryGetDestinationVersion ( _
    sourceChange As ItemChange, _
    <OutAttribute> ByRef destinationVersion As ItemChange _
) As Boolean
'Usage
Dim instance As INotifyingChangeApplierTarget
Dim sourceChange As ItemChange
Dim destinationVersion As ItemChange
Dim returnValue As Boolean

returnValue = instance.TryGetDestinationVersion(sourceChange, _
    destinationVersion)
bool TryGetDestinationVersion(
    ItemChange sourceChange,
    out ItemChange destinationVersion
)
bool TryGetDestinationVersion(
    ItemChange^ sourceChange, 
    [OutAttribute] ItemChange^% destinationVersion
)
abstract TryGetDestinationVersion : 
        sourceChange:ItemChange * 
        destinationVersion:ItemChange byref -> bool 
function TryGetDestinationVersion(
    sourceChange : ItemChange, 
    destinationVersion : ItemChange
) : boolean

Parameter

Rückgabewert

Typ: System. . :: . .Boolean
true , wenn das Element im Zielreplikat gefunden wurde; andernfalls false.

Hinweise

Diese Methode wird von NotifyingChangeApplier aufgerufen, wenn keine Zielversionen an die ApplyChanges-Methode übergeben werden. TryGetDestinationVersion wird einmal für jede Änderung im Änderungsbatch aufgerufen, der an den Änderungsanwender gesendet wird.

Diese Methode ist optional und kann NotImplementedException auslösen, außer wenn der Anbieter Einschränkungskonflikte meldet oder ein anderer Anbieter in der Synchronisierungscommunity Einschränkungskonflikte durch Zusammenführen auflöst. In beiden Fällen muss diese Methode implementiert werden.

Beispiele

Im folgenden Beispiel wird gezeigt, wie die Zielversionen von Änderungseinheiten, die in einem Element enthalten sind, mithilfe des Metadaten-Speicherdiensts abgerufen werden.

Public Function TryGetDestinationVersion(ByVal sourceChange As ItemChange, ByRef destinationVersion As ItemChange) As Boolean Implements INotifyingChangeApplierTarget.TryGetDestinationVersion
    Dim found As Boolean = False
    ' Get the item metadata from the metadata store.
    Dim itemMeta As ItemMetadata = _ContactStore.ContactReplicaMetadata.FindItemMetadataById(sourceChange.ItemId)
    If itemMeta IsNot Nothing Then
        ' The item metadata exists, so translate the change unit metadata to the proper format and
        ' return the item change object.
        Dim cuChange As ChangeUnitChange
        Dim cuChanges As New List(Of ChangeUnitChange)()
        For Each cuMeta As ChangeUnitMetadata In itemMeta.GetChangeUnitEnumerator()
            cuChange = New ChangeUnitChange(IdFormats, cuMeta.ChangeUnitId, cuMeta.ChangeUnitVersion)
            cuChanges.Add(cuChange)
        Next
        destinationVersion = New ItemChange(IdFormats, _ContactStore.ContactReplicaMetadata.ReplicaId, sourceChange.ItemId, ChangeKind.Update, itemMeta.CreationVersion, cuChanges)

        found = True
    Else
        destinationVersion = Nothing
    End If
    Return found
End Function
public bool TryGetDestinationVersion(ItemChange sourceChange, out ItemChange destinationVersion)
{
    bool found = false;
    // Get the item metadata from the metadata store.
    ItemMetadata itemMeta = _ContactStore.ContactReplicaMetadata.FindItemMetadataById(sourceChange.ItemId);
    if (null != itemMeta)
    {
        // The item metadata exists, so translate the change unit metadata to the proper format and
        // return the item change object.
        ChangeUnitChange cuChange;
        List<ChangeUnitChange> cuChanges = new List<ChangeUnitChange>();
        foreach (ChangeUnitMetadata cuMeta in itemMeta.GetChangeUnitEnumerator())
        {
            cuChange = new ChangeUnitChange(IdFormats, cuMeta.ChangeUnitId, cuMeta.ChangeUnitVersion);
            cuChanges.Add(cuChange);
        }
        destinationVersion = new ItemChange(IdFormats, _ContactStore.ContactReplicaMetadata.ReplicaId, sourceChange.ItemId,
            ChangeKind.Update, itemMeta.CreationVersion, cuChanges);

        found = true;
    }
    else
    {
        destinationVersion = null;
    }
    return found;
}

Siehe auch

Verweis

INotifyingChangeApplierTarget Schnittstelle

INotifyingChangeApplierTarget-Member

Microsoft.Synchronization-Namespace