Partager via


Méthode IChangeDataRetriever.LoadChangeData

En cas de substitution dans une classe dérivée, cette méthode récupère des données d'élément pour une modification.

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

Syntaxe

'Déclaration
Function LoadChangeData ( _
    loadChangeContext As LoadChangeContext _
) As Object
'Utilisation
Dim instance As IChangeDataRetriever
Dim loadChangeContext As LoadChangeContext
Dim returnValue As Object

returnValue = instance.LoadChangeData(loadChangeContext)
Object LoadChangeData (
    LoadChangeContext loadChangeContext
)
Object^ LoadChangeData (
    LoadChangeContext^ loadChangeContext
)
Object LoadChangeData (
    LoadChangeContext loadChangeContext
)
function LoadChangeData (
    loadChangeContext : LoadChangeContext
) : Object

Paramètres

  • loadChangeContext
    Métadonnées qui décrivent la modification pour laquelle les données doivent être récupérées.

Valeur de retour

Les données d'élément pour la modification.

Notes

Le fournisseur de source détermine le type d'objet retourné par cette méthode. L'objet peut être aussi simple qu'un type valeur boxed ou aussi complexe qu'une classe qui contient des méthodes pour la récupération des données avancée.

Exemple

L'exemple suivant montre comment implémenter la méthode LoadChangeData pour récupérer les données pour un jeu d'unités de modification spécifié. Cet exemple retourne les données sous la forme d'un tableau de chaînes partiellement rempli.

Public Function LoadChangeData(ByVal loadChangeContext As LoadChangeContext) As Object Implements IChangeDataRetriever.LoadChangeData
    ' Sanity check to ensure the data array is not overrun.
    If Contact.ChangeUnitFieldCount < loadChangeContext.ItemChange.ChangeUnitChanges.Count Then
        Throw New ArgumentOutOfRangeException("LoadChangeData received too many change unit changes.")
    End If

    ' Get the ID of the item to return.
    Dim itemId As SyncId = loadChangeContext.ItemChange.ItemId

    ' Create a string array to hold the data for each change unit. Some of the elements of this array
    ' may be empty.
    Dim contactData As String() = New String(Contact.ChangeUnitFieldCount - 1) {}

    ' Enumerate the change units to retrieve.
    For iChange As Integer = 0 To loadChangeContext.ItemChange.ChangeUnitChanges.Count - 1
        ' Retrieve data for the specified change unit and put the data into the appropriate
        ' place in the string array.
        Dim icu As Integer = loadChangeContext.ItemChange.ChangeUnitChanges(iChange).ChangeUnitId.GetByteId()
        contactData(icu) = _ContactStore.GetContactData(itemId, loadChangeContext.ItemChange.ChangeUnitChanges(iChange).ChangeUnitId)
    Next
    Return contactData
End Function
public object LoadChangeData(LoadChangeContext loadChangeContext)
{
    // Sanity check to ensure the data array is not overrun.
    if (Contact.ChangeUnitFieldCount < loadChangeContext.ItemChange.ChangeUnitChanges.Count)
    {
        throw new ArgumentOutOfRangeException("LoadChangeData received too many change unit changes.");
    }

    // Get the ID of the item to return.
    SyncId itemId = loadChangeContext.ItemChange.ItemId;

    // Create a string array to hold the data for each change unit. Some of the elements of this array
    // may be empty.
    string[] contactData = new string[Contact.ChangeUnitFieldCount];

    // Enumerate the change units to retrieve.
    for (int iChange = 0; iChange < loadChangeContext.ItemChange.ChangeUnitChanges.Count; iChange++)
    {
        // Retrieve data for the specified change unit and put the data into the appropriate
        // place in the string array.
        int icu = loadChangeContext.ItemChange.ChangeUnitChanges[iChange].ChangeUnitId.GetByteId();
        contactData[icu] = _ContactStore.GetContactData(itemId,
            loadChangeContext.ItemChange.ChangeUnitChanges[iChange].ChangeUnitId);
    }
    return contactData;
}

Voir aussi

Référence

Interface IChangeDataRetriever
Membres IChangeDataRetriever
Espace de noms Microsoft.Synchronization