Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando sottoposto a override in una classe derivata, imposta il filtro utilizzato dal provider di origine per l'enumerazione delle modifiche.
Spazio dei nomi: Microsoft.Synchronization
Assembly: Microsoft.Synchronization (in microsoft.synchronization.dll)
Sintassi
'Dichiarazione
Function TryAddFilter ( _
filter As Object, _
filteringType As FilteringType _
) As Boolean
'Utilizzo
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
Parametri
- filter
Filtro utilizzato per l'enumerazione delle modifiche dal provider di origine.
- filteringType
Indica il tipo di informazioni incluse in un batch di modifiche durante la sincronizzazione filtrata.
Valore restituito
True quando il filtro specificato da filter è supportato. In caso contrario, false.
Osservazioni
La negoziazione del filtro viene eseguita tramite i passaggi seguenti:
Prima che il provider di origine cominci a enumerare le modifiche, Sync Framework inizia la negoziazione del filtro chiamando il metodo SpecifyFilter dell'interfaccia IRequestFilteredSync implementata dal provider di destinazione.
Durante l'elaborazione di SpecifyFilter, il provider di destinazione passa i filtri all'oggetto FilterRequestCallback specificato da Sync Framework.
Durante l'elaborazione di FilterRequestCallback, Sync Framework chiama il metodo TryAddFilter dell'interfaccia ISupportFilteredSync implementata dal provider di origine. Se il provider di origine non supporta il filtro richiesto, il provider di destinazione può continuare a richiedere i filtri finché non ne trova uno supportato.
Quando un filtro è stato negoziato correttamente, il provider di origine lo utilizza per determinare quali elementi includere durante l'enumerazione delle modifiche.
Note per gli implementatori: Un'implementazione di questo metodo può esaminare il filtro specificato da filter e filteringType e restituire false per indicare che il filtro non è supportato. Il provider di destinazione può quindi richiedere filtri diversi finché non ne viene trovato uno supportato.
Esempio
Nell'esempio seguente viene implementato TryAddFilter. Il filtro viene utilizzato per la sincronizzazione solo se si tratta di un filtro rilevato dalla replica.
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);
}
Vedere anche
Riferimento
Interfaccia ISupportFilteredSync
Membri ISupportFilteredSync
Spazio dei nomi Microsoft.Synchronization