Compartilhar via


Classe FilterChange

Representa informações sobre uma alteração que faz um item ser movido para dentro ou para fora de um filtro.

Namespace: Microsoft.Synchronization
Assembly: Microsoft.Synchronization (em microsoft.synchronization.dll)

Sintaxe

'Declaração
Public Class FilterChange
'Uso
Dim instance As FilterChange
public class FilterChange
public ref class FilterChange
public class FilterChange
public class FilterChange

Comentários

Uma alteração pode fazer um item ser movido para dentro ou para fora de um filtro. Por exemplo, os itens contêm um campo state e um filtro exclui todos os itens cujo campo state seja igual a "Washington". Quando um item cujo campo state é igual a "Washington" é alterado de forma que state seja igual a "Oregon", o item é movido para dentro do filtro.

As propriedades desse objeto podem ser interpretadas de acordo com a tabela a seguir.

Valor de IsMoveIn

Valor de MoveVersion

Significado

true

A versão de criação do item.

O item está no filtro desde que ele foi criado.

true

Uma versão diferente da versão de criação do item.

O item movido para o filtro quando a alteração com a versão de MoveVersion foi criada.

false

Defina como 0.

O item não está no filtro desde que o filtro começou a ser controlado.

false

Uma versão diferente de 0.

O item movido para fora do filtro quando a alteração com a versão de MoveVersion foi feita.

Exemplo

O exemplo a seguir adiciona informações de alteração de filtro a um objeto ItemChange quando a versão de movimento do item em relação ao filtro não está contida no conhecimento de destino.

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);
        }
    }
}

Hierarquia de herança

System.Object
  Microsoft.Synchronization.FilterChange

Segurança de thread

Qualquer membro estático público (Compartilhado no Visual Basic) deste tipo é protegido por thread. Não há garantia de que qualquer membro de instância esteja protegido por thread.

Consulte também

Referência

Membros FilterChange
Namespace Microsoft.Synchronization