Compartilhar via


Classe AnchorEnumerationContext

O contexto da sessão de sincronização é transmitido para um objeto AnchorEnumerationSimpleSyncProvider.

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

Sintaxe

'Declaração
Public Class AnchorEnumerationContext
    Inherits ItemEnumerationContext
'Uso
Dim instance As AnchorEnumerationContext
public class AnchorEnumerationContext : ItemEnumerationContext
public ref class AnchorEnumerationContext : public ItemEnumerationContext
public class AnchorEnumerationContext extends ItemEnumerationContext
public class AnchorEnumerationContext extends ItemEnumerationContext

Comentários

O contexto pode ser usado pelo provedor em circunstâncias em que o provedor não for retornar uma enumeração de itens ou em que o provedor precisar modificar o comportamento de enumeração do tempo de execução do Sync Framework.

Exemplo

O código de exemplo a seguir mostra que o objeto AnchorEnumerationContext que está sendo passado para o método EnumerateChanges e o método ReportChanges que está sendo chamado no objeto do contexto. Para exibir esse código no contexto de um aplicativo completo, consulte o aplicativo "Sync101 using Simple Sync Provider" disponível no Sync Framework SDK e em Code Gallery.

public override void EnumerateChanges(byte[] anchor, AnchorEnumerationContext context)
{
    List<LocalItemChange> itemChanges = new List<LocalItemChange>();

    int startIndex = -1;

    if (anchor != null)
    {
        startIndex = _store.Changes.IndexOfKey(BitConverter.ToUInt64(anchor, 0));
    }

    for (int i = startIndex + 1; i < _store.Changes.Count; i++)
    {
        itemChanges.Add(_store.Changes.Values[i]);
    }

    // If the anchor is corrupt or out of date we could revert back to 
    // full enumeration mode for this session, and enumerate all items. 
    // This is done by calling context.ReportItemsAndAutodetectDeletes.
    context.ReportChanges(itemChanges, _store.GetAnchor());
}
Public Overrides Sub EnumerateChanges(ByVal anchor As Byte(), ByVal context As AnchorEnumerationContext)
    Dim itemChanges As New List(Of LocalItemChange)()

    Dim startIndex As Integer = -1

    If anchor IsNot Nothing Then
        startIndex = _store.Changes.IndexOfKey(BitConverter.ToUInt64(anchor, 0))
    End If

    For i As Integer = startIndex + 1 To _store.Changes.Count - 1
        itemChanges.Add(_store.Changes.Values(i))
    Next

    ' If the anchor is corrupt or out of date we could revert back to 
    ' full enumeration mode for this session, and enumerate all items. 
    ' This is done by calling context.ReportItemsAndAutodetectDeletes. 
    context.ReportChanges(itemChanges, _store.GetAnchor())
End Sub

Hierarquia de herança

System.Object
   Microsoft.Synchronization.SimpleProviders.ItemEnumerationContext
    Microsoft.Synchronization.SimpleProviders.AnchorEnumerationContext

Segurança de thread

Qualquer membro estático público (Compartilhado no Visual Basic) deste tipo é protegido por thread. Não há garantia de que qualquer membro de instância esteja protegido por thread.

Consulte também

Referência

Membros AnchorEnumerationContext
Namespace Microsoft.Synchronization.SimpleProviders