Partager via


TryGetDestinationVersion méthode

Obtient la version d'un élément stocké dans le réplica de destination.

Espace de noms :  Microsoft.Synchronization
Assembly :  Microsoft.Synchronization (dans Microsoft.Synchronization.dll)

Syntaxe

'Déclaration
Function TryGetDestinationVersion ( _
    sourceChange As ItemChange, _
    <OutAttribute> ByRef destinationVersion As ItemChange _
) As Boolean
'Utilisation
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

Paramètres

Valeur de retour

Type : System. . :: . .Boolean
true si l'élément est trouvé dans le réplica de destination ; sinon, false.

Notes

Cette méthode est appelée par NotifyingChangeApplier lorsque les versions de destination ne sont pas passées à la méthode ApplyChanges. La méthode TryGetDestinationVersion est appelée une fois pour chaque modification dans le lot de modifications envoyé à l'applicateur de modifications.

Cette méthode est facultative et peut lever une exception NotImplementedException, sauf lorsque le fournisseur signale des conflits de contraintes ou que tout autre fournisseur de la communauté de synchronisation résout les conflits de contraintes par fusion. Dans l'un ou l'autre de ces cas, cette méthode doit être implémentée.

Exemples

L'exemple suivant montre comment obtenir les versions de destination d'unités de modification contenues dans un élément à l'aide du service de stockage des métadonnées.

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;
}

Voir aussi

Référence

INotifyingChangeApplierTarget Interface

Membres INotifyingChangeApplierTarget

Espace de noms Microsoft.Synchronization