IChangeDataRetriever::LoadChangeData Method
When overridden in a derived class, this method retrieves item data for a change.
Assembly: Microsoft.Synchronization (in Microsoft.Synchronization.dll)
Parameters
- loadChangeContext
- Type: Microsoft.Synchronization::LoadChangeContext
Metadata that describes the change for which data should be retrieved.
The following example shows how to implement the LoadChangeData method to retrieve the data for a specified set of change units. This example returns the data as a sparsely-populated array of strings.
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; }
Show: