IChangeDataRetriever.LoadChangeData Método
Cuando se invalida en una clase derivada, este método recupera los datos de elemento para un cambio.
Espacio de nombres: Microsoft.Synchronization
Ensamblado: Microsoft.Synchronization (en microsoft.synchronization.dll)
Sintaxis
'Declaración
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
)
Object LoadChangeData (
LoadChangeContext loadChangeContext
)
function LoadChangeData (
loadChangeContext : LoadChangeContext
) : Object
Parámetros
- loadChangeContext
Metadatos que describen el cambio para el que se deben recuperar datos.
Valor devuelto
Datos de elemento para el cambio.
Notas
El proveedor de origen determina el tipo de objeto que devuelve este método. El objeto puede ser tan simple como un tipo de valor de conversión boxing o tan complejo como una clase que contiene métodos para la recuperación avanzada de datos.
Ejemplo
En el ejemplo siguiente se muestra cómo implementar el método LoadChangeData para recuperar los datos para un conjunto especificado de unidades de cambio. En este ejemplo los datos se devuelven como una matriz con cadenas dispersas.
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;
}
Vea también
Referencia
IChangeDataRetriever Interfaz
IChangeDataRetriever Miembros
Microsoft.Synchronization Espacio de nombres