Metodo INotifyingChangeApplierTarget.TryGetDestinationVersion
Ottiene la versione di un elemento archiviato nella replica di destinazione.
Spazio dei nomi: Microsoft.Synchronization
Assembly: Microsoft.Synchronization (in microsoft.synchronization.dll)
Sintassi
'Dichiarazione
Function TryGetDestinationVersion ( _
sourceChange As ItemChange, _
<OutAttribute> ByRef destinationVersion As ItemChange _
) As Boolean
'Utilizzo
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.
Parametri
- sourceChange
Modifica dell'elemento inviata dal provider di origine.
- destinationVersion
Restituisce una modifica dell'elemento contenente la versione dell'elemento nella replica di destinazione.
Valore restituito
true se l'elemento è stato individuato nella replica di destinazione; in caso contrario, false.
Osservazioni
Questo metodo viene chiamato da NotifyingChangeApplier quando le versioni di destinazione non vengono passate al metodo ApplyChanges. TryGetDestinationVersion viene chiamato una volta per ogni modifica nel batch di modifiche inviato all'oggetto di applicazione modifiche.
Questo metodo è facoltativo e può generare NotImplementedException, tranne quando il provider riporta conflitti di vincoli o qualsiasi altro provider nella community di sincronizzazione risolve conflitti di vincoli tramite unione. In entrambi i casi è necessario implementare questo metodo.
Esempio
Nell'esempio seguente viene illustrato come ottenere le versioni di destinazione delle unità di modifica contenute in un elemento tramite il servizio di archiviazione dei metadati.
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;
}
Vedere anche
Riferimento
Interfaccia INotifyingChangeApplierTarget
Membri INotifyingChangeApplierTarget
Spazio dei nomi Microsoft.Synchronization