Partager via


Classe FilterChange

Représente les informations relatives à une modification qui provoque l'inclusion dans un filtre ou l'exclusion d'un filtre.

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

Syntaxe

'Déclaration
Public Class FilterChange
'Utilisation
Dim instance As FilterChange
public class FilterChange
public ref class FilterChange
public class FilterChange
public class FilterChange

Notes

Une modification peut provoquer l'inclusion dans un filtre ou l'exclusion de ce filtre. Par exemple, les éléments contiennent un champ state, et un filtre exclut tout élément dont le champ state est égal à « Washington ». Lorsqu'un élément dont state est égal à « Washington » change de sorte que state soit égal à « Oregon », l'élément est inclus dans le filtre.

Les propriétés de cet objet peuvent être interprétées conformément au tableau suivant.

Valeur de la propriété IsMoveIn

Valeur de la propriété MoveVersion

Signification

true

Version de création de l'élément.

L'élément se trouve dans le filtre depuis sa création.

true

Version autre que la version de création de l'élément.

L'élément a été inclus dans le filtre lorsque la modification avec la version de la propriété MoveVersion a été apportée.

false

A la valeur 0.

L'élément ne s'est pas trouvé dans le filtre depuis le commencement du suivi des filtres.

false

Version autre que 0.

L'élément a été exclu du filtre lorsque la modification de la version de la propriété MoveVersion a été apportée.

Exemple

L'exemple suivant ajoute les informations de modification du filtre à un objet ItemChange lorsque la version de déplacement pour l'élément par rapport au filtre n'est pas contenue dans la connaissance de destination.

Public Sub AddFilterChanges(ByVal filterKeyMap As FilterKeyMap, ByVal itemMeta As ItemMetadata, ByVal destKnowledge As SyncKnowledge, ByVal itemChange As ItemChange)
    For filterKey As Integer = 0 To filterKeyMap.Count - 1
        ' Find the filter in the list of all filters tracked by this replica.
        Dim iFilter As Integer = 0
        While iFilter < _trackedFilters.Count
            If filterKeyMap(filterKey).IsIdentical(_trackedFilters(iFilter)) Then
                Exit While
            End If
            iFilter += 1
        End While

        ' Get the filter information for the item and add it to the ItemChange object.
        Dim moveVersion As SyncVersion = GetMoveVersion(itemMeta, iFilter)

        ' Only return a filter change if the destination knowledge does not contain the version of the 
        ' last move that occurred in relation to the specified filter.
        Dim filterChange As FilterChange = Nothing
        If Not destKnowledge.Contains(ContactReplicaMetadata.ReplicaId, itemMeta.GlobalId, moveVersion) Then
            filterChange = New FilterChange(GetIsInFilter(itemMeta, iFilter), moveVersion)
            itemChange.AddFilterChange(CUInt(filterKey), filterChange)
        End If
    Next
End Sub
public void AddFilterChanges(FilterKeyMap filterKeyMap, ItemMetadata itemMeta, SyncKnowledge destKnowledge,
    ItemChange itemChange)
{
    for (int filterKey = 0; filterKey < filterKeyMap.Count; filterKey++)
    {
        // Find the filter in the list of all filters tracked by this replica.
        int iFilter = 0;
        for (; iFilter < _trackedFilters.Count; iFilter++)
        {
            if (filterKeyMap[filterKey].IsIdentical(_trackedFilters[iFilter]))
            {
                break;
            }
        }

        // Get the filter information for the item and add it to the ItemChange object.
        SyncVersion moveVersion = GetMoveVersion(itemMeta, iFilter);

        // Only return a filter change if the destination knowledge does not contain the version of the 
        // last move that occurred in relation to the specified filter.
        FilterChange filterChange = null;
        if (!destKnowledge.Contains(ContactReplicaMetadata.ReplicaId, itemMeta.GlobalId, moveVersion))
        {
            filterChange = new FilterChange(GetIsInFilter(itemMeta, iFilter), moveVersion);
            itemChange.AddFilterChange((uint)filterKey, filterChange);
        }
    }
}

Hiérarchie d'héritage

System.Object
  Microsoft.Synchronization.FilterChange

Sécurité des threads

Tous les membres publics statiques (Partagés en 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 FilterChange
Espace de noms Microsoft.Synchronization