Metodo IChangeDataRetriever.LoadChangeData
Quando sottoposto a override in una classe derivata, questo metodo recupera i dati dell'elemento per una modifica.
Spazio dei nomi: Microsoft.Synchronization
Assembly: Microsoft.Synchronization (in microsoft.synchronization.dll)
Sintassi
'Dichiarazione
Function LoadChangeData ( _
loadChangeContext As LoadChangeContext _
) As Object
'Utilizzo
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
Parametri
- loadChangeContext
Metadati che descrivono la modifica per la quale è necessario recuperare i dati.
Valore restituito
Dati dell'elemento per la modifica.
Osservazioni
Il provider di origine determina il tipo di oggetto restituito da questo metodo. L'oggetto può essere semplice come un tipo di valore boxed o complesso come una classe che contiene i metodi per il recupero avanzato dei dati.
Esempio
Nell'esempio seguente viene mostrato come implementare il metodo LoadChangeData per recuperare i dati per un set specificato di unità di modifica. In questo esempio i dati vengono restituiti come matrice di stringhe con popolamento di tipo sparse.
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;
}
Vedere anche
Riferimento
Interfaccia IChangeDataRetriever
Membri IChangeDataRetriever
Spazio dei nomi Microsoft.Synchronization