ItemFieldDictionary クラス

項目とそれに関連付けられているフィールドを表します。

名前空間:  Microsoft.Synchronization.SimpleProviders
アセンブリ:  Microsoft.Synchronization.SimpleProviders (Microsoft.Synchronization.SimpleProviders.dll 内)

構文

'宣言
Public Class ItemFieldDictionary _
    Implements IDictionary(Of UInteger, ItemField),  _
    ICollection(Of KeyValuePair(Of UInteger, ItemField)), IEnumerable(Of KeyValuePair(Of UInteger, ItemField)),  _
    IEnumerable
'使用
Dim instance As ItemFieldDictionary
public class ItemFieldDictionary : IDictionary<uint, ItemField>, 
    ICollection<KeyValuePair<uint, ItemField>>, IEnumerable<KeyValuePair<uint, ItemField>>, 
    IEnumerable
public ref class ItemFieldDictionary : IDictionary<unsigned int, ItemField^>, 
    ICollection<KeyValuePair<unsigned int, ItemField^>>, IEnumerable<KeyValuePair<unsigned int, ItemField^>>, 
    IEnumerable
type ItemFieldDictionary =  
    class
        interface IDictionary<uint32, ItemField>
        interface ICollection<KeyValuePair<uint32, ItemField>>
        interface IEnumerable<KeyValuePair<uint32, ItemField>>
        interface IEnumerable
    end
public class ItemFieldDictionary implements IDictionary<uint, ItemField>, ICollection<KeyValuePair<uint, ItemField>>, IEnumerable<KeyValuePair<uint, ItemField>>, IEnumerable

説明

簡易プロバイダー メソッドの多くが、ItemFieldDictionary オブジェクトを使用して、変更が同期先に適用されるときに項目を特定する ItemField オブジェクトを保存して渡します。

次のコード例では、メモリ内ストアに項目を保存するサンプル アプリケーションに対する EnumerateItems メソッドの実装を示します。CreateItemFieldDictionary メソッドは、ストアの項目ごとに ItemFieldDictionary オブジェクトを作成して返すサンプル メソッドです。完全なアプリケーションのコンテキストでこのコードを表示するには、Sync Framework SDK やCode Galleryから入手できる "Sync101 using Simple Sync Provider" アプリケーションを参照してください。

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

継承階層

System. . :: . .Object
  Microsoft.Synchronization.SimpleProviders..::..ItemFieldDictionary

スレッド セーフ

この型の public static (Visual Basic では Shared) のメンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

参照

参照

ItemFieldDictionary メンバー

Microsoft.Synchronization.SimpleProviders 名前空間