Partager via


Classe AnchorEnumerationContext

Contexte de session de synchronisation passé à un objet AnchorEnumerationSimpleSyncProvider.

Espace de noms :  Microsoft.Synchronization.SimpleProviders
Assembly :  Microsoft.Synchronization.SimpleProviders (dans Microsoft.Synchronization.SimpleProviders.dll)

Syntaxe

'Déclaration
Public Class AnchorEnumerationContext _
    Inherits ItemEnumerationContext
'Utilisation
Dim instance As AnchorEnumerationContext
public class AnchorEnumerationContext : ItemEnumerationContext
public ref class AnchorEnumerationContext : public ItemEnumerationContext
type AnchorEnumerationContext =  
    class
        inherit ItemEnumerationContext
    end
public class AnchorEnumerationContext extends ItemEnumerationContext

Notes

Le contexte peut être utilisé par le fournisseur lorsque ce dernier ne va pas retourner d'énumération d'éléments ou qu'il doit modifier le comportement d'énumération du runtime de Sync Framework. 

Exemples

L'exemple de code suivant affiche l'objet AnchorEnumerationContext qui est passé à la méthode EnumerateChanges, et la méthode ReportChanges qui est appelée sur l'objet de contexte. Pour consulter ce code dans le contexte d'une application complète, consultez l'application "Sync101 using Simple Sync Provider" qui est disponible dans le Kit de développement logiciel (SDK) Sync Framework et de 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

Hiérarchie d'héritage

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

Sécurité des threads

Tous les membres publics static (Shared dans Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Membres AnchorEnumerationContext

Espace de noms Microsoft.Synchronization.SimpleProviders