IRequestFilteredSync.SpecifyFilter Método
Cuando se invalida en una clase derivada, negocia el filtro que el proveedor de origen utiliza durante la enumeración de cambios.
Espacio de nombres: Microsoft.Synchronization
Ensamblado: Microsoft.Synchronization (en microsoft.synchronization.dll)
Sintaxis
'Declaración
Sub SpecifyFilter ( _
filterRequest As FilterRequestCallback _
)
'Uso
Dim instance As IRequestFilteredSync
Dim filterRequest As FilterRequestCallback
instance.SpecifyFilter(filterRequest)
void SpecifyFilter (
FilterRequestCallback filterRequest
)
void SpecifyFilter (
FilterRequestCallback^ filterRequest
)
void SpecifyFilter (
FilterRequestCallback filterRequest
)
function SpecifyFilter (
filterRequest : FilterRequestCallback
)
Parámetros
- filterRequest
Delegado utilizado por el proveedor de destino para solicitar que el proveedor de origen utilice un filtro durante la enumeración de cambios.
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 implementada por el proveedor de destino.
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 llamar repetidamente a FilterRequestCallback con filtros diferentes hasta que se encuentra un filtro admitido por el proveedor de destino y el proveedor de origen. Para indicar que no admite un filtro, el proveedor de origen devuelve false en respuesta a la llamada a TryAddFilter.
Ejemplo
En el ejemplo siguiente se implementa el método SpecifyFilter. Se solicita el primer filtro objeto de seguimiento como filtro para la sincronización. Se produce una excepción si el proveedor de origen deniega el filtro solicitado.
Public Sub SpecifyFilter(ByVal filterRequest As FilterRequestCallback) Implements IRequestFilteredSync.SpecifyFilter
' Use the first tracked filter as the filter for sync.
If 0 < _ContactStore.TrackedFilters.Count Then
_filterForSync = _ContactStore.TrackedFilters(0)
End If
' The source provider must agree to send a filtered change batch.
If Not filterRequest(_filterForSync, FilteringType.CurrentItemsAndVersionsForMovedOutItems) Then
Throw New SyncInvalidOperationException("Filter specified by SpecifyFilter was rejected.")
End If
End Sub
public void SpecifyFilter(FilterRequestCallback filterRequest)
{
// Use the first tracked filter as the filter for sync.
if (0 < _ContactStore.TrackedFilters.Count)
{
_filterForSync = _ContactStore.TrackedFilters[0];
}
// The source provider must agree to send a filtered change batch.
if (!filterRequest(_filterForSync, FilteringType.CurrentItemsAndVersionsForMovedOutItems))
{
throw new SyncInvalidOperationException("Filter specified by SpecifyFilter was rejected.");
}
}
Vea también
Referencia
IRequestFilteredSync Interfaz
IRequestFilteredSync Miembros
Microsoft.Synchronization Espacio de nombres