Partager via


EnumerateChanges méthode

En cas de substitution dans une classe dérivée, énumère les modifications d'un réplica qui se sont produites depuis la valeur d'ancre spécifiée.

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

Syntaxe

'Déclaration
Public MustOverride Sub EnumerateChanges ( _
    anchor As Byte(), _
    context As AnchorEnumerationContext _
)
'Utilisation
Dim instance As AnchorEnumerationSimpleSyncProvider
Dim anchor As Byte()
Dim context As AnchorEnumerationContext

instance.EnumerateChanges(anchor, context)
public abstract void EnumerateChanges(
    byte[] anchor,
    AnchorEnumerationContext context
)
public:
virtual void EnumerateChanges(
    array<unsigned char>^ anchor, 
    AnchorEnumerationContext^ context
) abstract
abstract EnumerateChanges : 
        anchor:byte[] * 
        context:AnchorEnumerationContext -> unit 
public abstract function EnumerateChanges(
    anchor : byte[], 
    context : AnchorEnumerationContext
)

Paramètres

  • anchor
    Type : array<System. . :: . .Byte> [] () [] []
    Tableau d'octets qui représente une ancre d'énumération, telle qu'un horodateur. Les modifications qui se sont produites depuis cette ancre sont énumérées. Si l'ancre a la valeur Null, le fournisseur doit énumérer tous les éléments dans le magasin.

Notes

Cette méthode doit contenir ou appeler le code spécifique au magasin qui permet à Sync Framework d'énumérer les métadonnées pour tous les éléments dans le magasin qui ont changé depuis l'ancre spécifiée.

Exemples

L'exemple de code suivant affiche une implémentation de la méthode EnumerateChanges pour un exemple d'application qui stocke des éléments dans un magasin en mémoire. 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

Voir aussi

Référence

AnchorEnumerationSimpleSyncProvider Classe

Membres AnchorEnumerationSimpleSyncProvider

Espace de noms Microsoft.Synchronization.SimpleProviders