Méthode ItemChange.AddFilterChange
Ajouter des informations qui indiquent si cette modification a pour effet d'inclure l'élément dans un filtre spécifié ou de l'en exclure.
Espace de noms: Microsoft.Synchronization
Assembly: Microsoft.Synchronization (dans microsoft.synchronization.dll)
Syntaxe
'Déclaration
Public Sub AddFilterChange ( _
filterKey As UInteger, _
filterChange As FilterChange _
)
'Utilisation
Dim instance As ItemChange
Dim filterKey As UInteger
Dim filterChange As FilterChange
instance.AddFilterChange(filterKey, filterChange)
public void AddFilterChange (
uint filterKey,
FilterChange filterChange
)
public:
void AddFilterChange (
unsigned int filterKey,
FilterChange^ filterChange
)
public void AddFilterChange (
UInt32 filterKey,
FilterChange filterChange
)
public function AddFilterChange (
filterKey : uint,
filterChange : FilterChange
)
Paramètres
- filterKey
Clé du filtre dans lequel l'élément est inclus ou duquel l'élément est exclu.
- filterChange
Informations sur la modification par rapport au filtre spécifié par filterKey.
Exceptions
Type d'exception | Condition |
---|---|
Un paramètre obligatoire est une Null. |
|
filterKey est une valeur non valide. |
|
Des informations de modification du filtre existent déjà pour filterKey. |
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.
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);
}
}
}
Voir aussi
Référence
Classe ItemChange
Membres ItemChange
Espace de noms Microsoft.Synchronization