ItemFieldDictionary Class

Represents an item and its associated fields.

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

Syntax

'Declaration
<DefaultMemberAttribute("Item")> _
Public Class ItemFieldDictionary
    Implements IDictionary(Of UInteger, ItemField), ICollection(Of KeyValuePair(Of UInteger, ItemField)), _
    IEnumerable(Of KeyValuePair(Of UInteger, ItemField)), IEnumerable
'Usage
Dim instance As ItemFieldDictionary
[DefaultMemberAttribute("Item")] 
public class ItemFieldDictionary : IDictionary<uint,ItemField>, ICollection<KeyValuePair<uint,ItemField>>, 
    IEnumerable<KeyValuePair<uint,ItemField>>, IEnumerable
[DefaultMemberAttribute(L"Item")] 
public ref class ItemFieldDictionary : IDictionary<unsigned int, ItemField^>, ICollection<KeyValuePair<unsigned int, ItemField^>>, 
    IEnumerable<KeyValuePair<unsigned int, ItemField^>>, IEnumerable
/** @attribute DefaultMemberAttribute("Item") */ 
public class ItemFieldDictionary implements IDictionary<UInt32,ItemField>, 
    ICollection<KeyValuePair<UInt32,ItemField>>, IEnumerable<KeyValuePair<UInt32,ItemField>>, IEnumerable
DefaultMemberAttribute("Item") 
public class ItemFieldDictionary implements IDictionary<uint,ItemField>, 
    ICollection<KeyValuePair<uint,ItemField>>, IEnumerable<KeyValuePair<uint,ItemField>>, IEnumerable

Remarks

ItemFieldDictionary objects are used by many of the simple provider methods to store and pass the ItemField objects that identify items when changes are applied to a destination.

Example

The following code examples show an implementation of the EnumerateItems method for a sample application that stores items in an in-memory store. The CreateItemFieldDictionary method is a sample method that creates and returns an ItemFieldDictionary object for each item in the store. To view this code in the context of a complete application, see the "Sync101 using Simple Sync Provider" application that is available in the Sync Framework SDK and from Code Gallery.

public override void EnumerateItems(FullEnumerationContext context)
{
    List<ItemFieldDictionary> items = new List<ItemFieldDictionary>();
    foreach (ulong id in _store.Ids)
    {
        items.Add(_store.CreateItemFieldDictionary(id));
    }
    context.ReportItems(items);
}
public ItemFieldDictionary CreateItemFieldDictionary(ulong id)
{
    ItemFieldDictionary itemFields = null;

    if (_store.ContainsKey(id))
    {
        itemFields = new ItemFieldDictionary();
        itemFields.Add(new ItemField(MyFullEnumerationSimpleSyncProvider.CUSTOM_FIELD_ID, typeof(ulong), id));
        itemFields.Add(new ItemField(MyFullEnumerationSimpleSyncProvider.CUSTOM_FIELD_TIMESTAMP, typeof(ulong), _store[id].TimeStamp));
    }
    else
    {
        throw new Exception("Item does not exist in store");
    }

    return itemFields;
}
Public Overrides Sub EnumerateItems(ByVal context As FullEnumerationContext)
    Dim items As New List(Of ItemFieldDictionary)()
    For Each id As ULong In _store.Ids
        items.Add(_store.CreateItemFieldDictionary(id))
    Next
    context.ReportItems(items)
End Sub
Public Function CreateItemFieldDictionary(ByVal id As ULong) As ItemFieldDictionary
    Dim itemFields As ItemFieldDictionary = Nothing

    If _store.ContainsKey(id) Then
        itemFields = New ItemFieldDictionary()
        itemFields.Add(New ItemField(MyFullEnumerationSimpleSyncProvider.CUSTOM_FIELD_ID, GetType(ULong), id))
        itemFields.Add(New ItemField(MyFullEnumerationSimpleSyncProvider.CUSTOM_FIELD_TIMESTAMP, GetType(ULong), _store(id).TimeStamp))
    Else
        Throw New Exception("Item does not exist in store")
    End If

    Return itemFields
End Function

Inheritance Hierarchy

System.Object
  Microsoft.Synchronization.SimpleProviders.ItemFieldDictionary

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

ItemFieldDictionary Members
Microsoft.Synchronization.SimpleProviders Namespace