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:
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.
Durante el procesamiento de SpecifyFilter, el proveedor de destino pasa los filtros a FilterRequestCallback, especificado por Sync Framework.
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