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