Метод INotifyingChangeApplierTarget.TryGetDestinationVersion
Возвращает версию хранилища элемента, хранящегося в реплике назначения.
Пространство имен: Microsoft.Synchronization
Сборка: Microsoft.Synchronization (в microsoft.synchronization.dll)
Синтаксис
'Декларация
Function TryGetDestinationVersion ( _
sourceChange As ItemChange, _
<OutAttribute> ByRef destinationVersion As ItemChange _
) As Boolean
'Применение
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.
Параметры
- sourceChange
Изменение элемента, отправленное поставщику источника.
- destinationVersion
Возвращает изменение элемента, содержащее версию элемента в реплике назначения.
Возвращаемое значение
Возвращает значение true, если элемент найден в реплике назначения. В противном случае возвращает значение false.
Замечания
Этот метод вызывается объектом NotifyingChangeApplier, если версии назначения не передаются методу ApplyChanges. Метод TryGetDestinationVersion вызывается один раз для каждого изменения в пакете изменений, который отправляется для применения изменений.
Этот метод является необязательным и может вызывать исключение NotImplementedException, если только поставщик не сообщает о конфликтах ограничений или любой другой поставщик в сообществе синхронизации не разрешает конфликты с помощью слияния. В любом из этих случаев необходимо реализовывать данный метод.
Пример
В следующем примере показано, как с помощью службы хранилища метаданных получить версии назначения базовых единиц, содержащихся в элементе.
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;
}
См. также
Справочник
Интерфейс INotifyingChangeApplierTarget
Элементы INotifyingChangeApplierTarget
Пространство имен Microsoft.Synchronization