Compartilhar via


Método LoadChangeData

Quando substituído em uma classe derivada, esse método recupera dados de item para uma alteração.

Namespace:  Microsoft.Synchronization
Assembly:  Microsoft.Synchronization (em Microsoft.Synchronization.dll)

Sintaxe

'Declaração
Function LoadChangeData ( _
    loadChangeContext As LoadChangeContext _
) As Object
'Uso
Dim instance As IChangeDataRetriever
Dim loadChangeContext As LoadChangeContext
Dim returnValue As Object

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

Parâmetros

Valor de retorno

Tipo: System. . :: . .Object
Os dados do item da alteração.

Comentários

O provedor de origem determina o tipo de objeto que é retornado por esse método. O objeto pode ser tão simples quanto um tipo de valor em caixa ou tão complexo quanto uma classe que contém métodos para recuperação de dados avançada.

Exemplos

O exemplo a seguir mostra como implementar o método LoadChangeData para recuperar os dados para um conjunto especificado de unidades de alteração. Este exemplo retorna os dados como uma matriz de cadeia de caracteres populada escassamente.

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

Consulte também

Referência

IChangeDataRetriever Interface

Membros IChangeDataRetriever

Namespace Microsoft.Synchronization