Compartir a través de


ISupportFilteredSync.TryAddFilter Método

Cuando se invalida en una clase derivada, establece el filtro que el proveedor de origen utiliza para la enumeración de cambios.

Espacio de nombres: Microsoft.Synchronization
Ensamblado: Microsoft.Synchronization (en microsoft.synchronization.dll)

Sintaxis

'Declaración
Function TryAddFilter ( _
    filter As Object, _
    filteringType As FilteringType _
) As Boolean
'Uso
Dim instance As ISupportFilteredSync
Dim filter As Object
Dim filteringType As FilteringType
Dim returnValue As Boolean

returnValue = instance.TryAddFilter(filter, filteringType)
bool TryAddFilter (
    Object filter,
    FilteringType filteringType
)
bool TryAddFilter (
    Object^ filter, 
    FilteringType filteringType
)
boolean TryAddFilter (
    Object filter, 
    FilteringType filteringType
)
function TryAddFilter (
    filter : Object, 
    filteringType : FilteringType
) : boolean

Parámetros

  • filter
    Filtro que el proveedor de origen utiliza para la enumeración de cambios.
  • filteringType
    Indica el tipo de información incluida en un lote de cambios durante la sincronización filtrada.

Valor devuelto

true cuando se admite el filtro especificado mediante filter. En caso contrario, false.

Notas

La negociación de filtros se logra a través de los pasos siguientes:

  1. Antes de que el proveedor de origen empiece a enumerar cambios, Sync Framework inicia la negociación de filtros llamando al método SpecifyFilter de la interfaz IRequestFilteredSync que el proveedor de destino ha implementado.

  2. Durante el procesamiento de SpecifyFilter, el proveedor de destino pasa los filtros a FilterRequestCallback, especificado por Sync Framework.

  3. Durante el procesamiento de FilterRequestCallback, Sync Framework llama al método TryAddFilter de la interfaz ISupportFilteredSync implementada por el proveedor de origen. Si el proveedor de origen no admite el filtro solicitado, el proveedor de destino puede continuar solicitando filtros hasta encontrar uno admitido.

Cuando se ha negociado un filtro correctamente, el proveedor de origen lo utiliza para determinar qué elementos incluir durante la enumeración de cambios.

Notas a los implementadores: Una implementación de este método puede examinar el filtro especificado por filter y filteringType y devolver false para indicar que el filtro no se admite. A continuación, el proveedor de destino puede solicitar otros filtros hasta encontrar uno que se admita.

Ejemplo

En el ejemplo siguiente se implementa el método TryAddFilter. El filtro se usa para la sincronización únicamente si es un filtro cuyo seguimiento lo realiza la réplica.

Public Function TryAddFilter(ByVal filter As Object, ByVal filteringType As FilteringType) As Boolean Implements ISupportFilteredSync.TryAddFilter
    _filterForSync = Nothing

    ' The filter must be tracked by both replicas.
    For filterKey As Integer = 0 To _filterKeyMap.Count - 1
        If _filterKeyMap(filterKey).IsIdentical(DirectCast(filter, ISyncFilter)) Then
            _filterForSync = DirectCast(_filterKeyMap(filterKey), AddressFilter)
            _filteringType = filteringType
            Exit For
        End If
    Next

    Return (_filterForSync IsNot Nothing)
End Function
public bool TryAddFilter(object filter, FilteringType filteringType)
{
    _filterForSync = null;

    // The filter must be tracked by both replicas.
    for (int filterKey = 0; filterKey < _filterKeyMap.Count; filterKey++)
    {
        if (_filterKeyMap[filterKey].IsIdentical((ISyncFilter)filter))
        {
            _filterForSync = (AddressFilter)_filterKeyMap[filterKey];
            _filteringType = filteringType;
            break;
        }
    }

    return (null != _filterForSync);
}

Vea también

Referencia

ISupportFilteredSync Interfaz
ISupportFilteredSync Miembros
Microsoft.Synchronization Espacio de nombres