Compartilhar via


Método AnchorEnumerationSimpleSyncProvider.GetEnumerationAnchor

Quando substituído em uma classe derivada, retorna uma âncora de enumeração que é usada para determinar o conjunto de alterações a serem sincronizadas durante uma sessão.

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

Sintaxe

'Declaração
Public MustOverride Function GetEnumerationAnchor As Byte()
'Uso
Dim instance As AnchorEnumerationSimpleSyncProvider
Dim returnValue As Byte()

returnValue = instance.GetEnumerationAnchor
public abstract byte[] GetEnumerationAnchor ()
public:
virtual array<unsigned char>^ GetEnumerationAnchor () abstract
public abstract byte[] GetEnumerationAnchor ()
public abstract function GetEnumerationAnchor () : byte[]

Valor de retorno

Uma matriz de bytes que representa uma âncora de enumeração, como um carimbo de data/hora.

Comentários

Uma âncora é um momento determinado. O tempo pode ser a hora lógica, como um carimbo de data/hora ou outro número que aumenta de forma monotônica, ou o tempo do relógio. Durante a primeira sessão de sincronização, o valor da âncora é nulo; portanto, todos os itens no repositório são enumerados. Durante as sessões de sincronização subsequentes, o método GetEnumerationAnchor é chamado para fornecer um novo valor de âncora. As alterações feitas após o valor de âncora anterior e antes do novo valor de âncora são sincronizadas. O novo valor de âncora é armazenado pelo Sync Framework e usado como o valor de âncora anterior para a próxima sessão de sincronização.

Exemplo

Os exemplos de códigos a seguir mostram uma implementação do método GetEnumerationAnchor para um aplicativo de exemplo que armazena itens em um repositório na memória. O método GetAnchor é um método de exemplo que retorna uma âncora para o repositório, que é o carimbo de data/hora da última alteração determinada para o Sync Framework. 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.

Dica

Essa é uma implementação muito simples de âncora e de controle de alterações. Para uma implementação de âncora de produção, você deve considerar os problemas de simultaneidade otimista que podem surgir quando o usuário faz alterações no repositório durante uma sessão de sincronização.

public override byte[] GetEnumerationAnchor()
{
    return _store.GetAnchor();
}
public byte[] GetAnchor()
{
    //Use the timestamp of the last change as the anchor.
    if (_trackedChanges.Count > 0)
    {
        return BitConverter.GetBytes(_trackedChanges.Keys[_trackedChanges.Count - 1]);
    }
    else
    {
        return null;
    }
}
Public Overrides Function GetEnumerationAnchor() As Byte()
    Return _store.GetAnchor()
End Function
Public Function GetAnchor() As Byte()
    'Use the timestamp of the last change as the anchor. 
    If _trackedChanges.Count > 0 Then
        Return BitConverter.GetBytes(_trackedChanges.Keys(_trackedChanges.Count - 1))
    Else
        Return Nothing
    End If
End Function

Consulte também

Referência

Classe AnchorEnumerationSimpleSyncProvider
Membros AnchorEnumerationSimpleSyncProvider
Namespace Microsoft.Synchronization.SimpleProviders