INotifyingChangeApplierTarget.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
)
boolean TryGetDestinationVersion (
ItemChange sourceChange,
/** @attribute OutAttribute() */ /** @ref */ ItemChange destinationVersion
)
JScript does not support passing value-type arguments by reference.
Parameter
- sourceChange
Die Elementänderung, die vom Quellenanbieter gesendet wird.
- destinationVersion
Gibt eine Elementänderung zurück, die die Version des Elements im Zielreplikat enthält.
Rückgabewert
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.
Beispiel
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