Метод EnumerateItems
При переопределении в производном классе перечисляет все элементы реплики.
Пространство имен: Microsoft.Synchronization.SimpleProviders
Сборка: Microsoft.Synchronization.SimpleProviders (в Microsoft.Synchronization.SimpleProviders.dll)
Синтаксис
'Декларация
Public MustOverride Sub EnumerateItems ( _
context As FullEnumerationContext _
)
'Применение
Dim instance As FullEnumerationSimpleSyncProvider
Dim context As FullEnumerationContext
instance.EnumerateItems(context)
public abstract void EnumerateItems(
FullEnumerationContext context
)
public:
virtual void EnumerateItems(
FullEnumerationContext^ context
) abstract
abstract EnumerateItems :
context:FullEnumerationContext -> unit
public abstract function EnumerateItems(
context : FullEnumerationContext
)
Параметры
- context
Тип Microsoft.Synchronization.SimpleProviders. . :: . .FullEnumerationContext
Объект FullEnumerationContext, представляющий контекст сеанса синхронизации.
Замечания
Этот метод должен содержать или вызывать зависящий от хранилища код, который позволит платформе Sync Framework перечислять метаданные для всех элементов в хранилище.
Примеры
В следующем примере кода показана реализация метода EnumerateItems для примера приложения, сохраняющего элементы в хранилище данных в памяти. Метод CreateItemFieldDictionary создает и возвращает объект ItemFieldDictionary для каждого из элементов в хранилище. Чтобы просмотреть этот код в контексте полного приложения, см. приложение "Sync101 using Simple Sync Provider", которое можно найти в пакете Sync Framework SDK или на странице 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
См. также
Справочник
FullEnumerationSimpleSyncProvider Класс