Freigeben über


IChangeDataRetriever.LoadChangeData-Methode

Diese Methode ruft, wenn in einer abgeleiteten Klasse überschrieben, Elementdaten für eine Änderung ab.

Namespace: Microsoft.Synchronization
Assembly: Microsoft.Synchronization (in microsoft.synchronization.dll)

Syntax

'Declaration
Function LoadChangeData ( _
    loadChangeContext As LoadChangeContext _
) As Object
'Usage
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

Parameter

  • loadChangeContext
    Metadaten, die die Änderung beschreiben, für die Daten abgerufen werden sollen.

Rückgabewert

Die Elementdaten für die Änderung.

Hinweise

Der Quellenanbieter bestimmt den Objekttyp, der von dieser Methode zurückgegeben wird. Das Objekt kann einfach ein geschachtelter Werttyp sein oder eine komplexe Klasse, die Methoden für erweiterten Datenabruf enthält.

Beispiel

Im folgenden Beispiel wird gezeigt, wie die LoadChangeData-Methode implementiert wird, um die Daten für einen angegebenen Satz von Änderungseinheiten abzurufen. In diesem Beispiel werden die Daten als spärlich aufgefülltes Zeichenfolgenarray zurückgegeben.

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

Siehe auch

Verweis

IChangeDataRetriever-Schnittstelle
IChangeDataRetriever-Member
Microsoft.Synchronization-Namespace