Método ISupportFilteredSync.TryAddFilter
Quando substituído em uma classe derivada, define o filtro que é usado para enumeração de alteração pelo provedor de origem.
Namespace: Microsoft.Synchronization
Assembly: Microsoft.Synchronization (em microsoft.synchronization.dll)
Sintaxe
'Declaração
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
O filtro que é usado para enumeração de alteração pelo provedor de origem.
- filteringType
Indica o tipo de informações incluídas em um lote de alterações durante a sincronização filtrada.
Valor de retorno
True quando o filtro especificado por filter tiver suporte. Caso contrário, false.
Comentários
A negociação de filtro é obtida por meio das seguintes etapas:
Antes de o provedor de origem começar a enumerar alterações, o Sync Framework inicia a negociação de filtro chamando o método SpecifyFilter da interface IRequestFilteredSync que o provedor de destino implementou.
Durante o processamento de SpecifyFilter, o provedor de destino transmite filtros a FilterRequestCallback que é especificado pelo Sync Framework.
Durante o processamento de FilterRequestCallback, o Sync Framework chama o método TryAddFilter da interface ISupportFilteredSync que o provedor de origem implementou. Se o provedor de origem não oferecer suporte ao filtro solicitado, o provedor de destino poderá continuar solicitando filtros até encontrar um que tenha suporte.
Quando um filtro tiver sido negociado com êxito, o provedor de origem o usará para determinar os itens a serem incluídos durante a enumeração de alteração.
Observações para implementadores: Uma implementação desse método pode examinar o filtro especificado por filter e filteringType, e retorna false para indicar que o filtro não tem suporte. O provedor de destino pode então solicitar filtros diferentes até que seja encontrado um que tenha suporte.
Exemplo
O exemplo a seguir implementa TryAddFilter. O filtro é usado para sincronização somente quando é um filtro controlado pela 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);
}
Consulte também
Referência
Interface ISupportFilteredSync
Membros ISupportFilteredSync
Namespace Microsoft.Synchronization