INotifyingChangeApplierTarget.TryGetDestinationVersion Método
Obtiene la versión de un elemento almacenado en la réplica de destino.
Espacio de nombres: Microsoft.Synchronization
Ensamblado: Microsoft.Synchronization (en microsoft.synchronization.dll)
Sintaxis
'Declaración
Function TryGetDestinationVersion ( _
sourceChange As ItemChange, _
<OutAttribute> ByRef destinationVersion As ItemChange _
) As Boolean
'Uso
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.
Parámetros
- sourceChange
Cambio de elemento enviado por el proveedor de origen.
- destinationVersion
Devuelve un cambio de elemento que contiene la versión del elemento en la réplica de destino.
Valor devuelto
true si el elemento se encontró en la réplica de destino; de lo contrario, false.
Notas
Este método es invocado por NotifyingChangeApplier cuando las versiones de destino no se pasan al método ApplyChanges. TryGetDestinationVersion se invoca una vez para cada cambio en el lote de cambios que se envía a aplicador de cambios.
Este método es opcional y puede producir la excepción NotImplementedException, salvo cuando el proveedor notifica la existencia de conflictos de restricción o cualquier otro proveedor de la comunidad de sincronización resuelve los conflictos de restricción mediante la combinación. En cualquiera de estos casos, se debe implementar este método.
Ejemplo
En el ejemplo siguiente se muestra cómo obtener las versiones de destino de las unidades de cambio contenidas en un elemento utilizando Metadata Storage Service.
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;
}
Vea también
Referencia
INotifyingChangeApplierTarget Interfaz
INotifyingChangeApplierTarget Miembros
Microsoft.Synchronization Espacio de nombres