Méthode ISupportFilteredSync.TryAddFilter
En cas de substitution dans une classe dérivée, définit le filtre utilisé pour l'énumération des modifications par le fournisseur de source.
Espace de noms: Microsoft.Synchronization
Assembly: Microsoft.Synchronization (dans microsoft.synchronization.dll)
Syntaxe
'Déclaration
Function TryAddFilter ( _
filter As Object, _
filteringType As FilteringType _
) As Boolean
'Utilisation
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
Paramètres
- filter
Filtre utilisé pour l'énumération des modifications par le fournisseur de source.
- filteringType
Indique le type d'informations incluses dans un lot de modifications pendant la synchronisation filtrée.
Valeur de retour
true lorsque le filtre spécifié par filter est pris en charge. Sinon, false.
Notes
Pour négocier l'utilisation des filtres, procédez comme suit :
Avant que le fournisseur de source commence à énumérer les modifications, Sync Framework démarre la négociation des filtres en appelant la méthode SpecifyFilter de l'interface IRequestFilteredSync que le fournisseur de destination a implémentée.
Pendant le traitement de la méthode SpecifyFilter, le fournisseur de destination passe des filtres au FilterRequestCallback spécifié par Sync Framework.
Pendant le traitement de FilterRequestCallback, Sync Framework appelle la méthode TryAddFilter de l'interface ISupportFilteredSync que le fournisseur de source a implémentée. Si le fournisseur de source ne prend pas en charge le filtre demandé, le fournisseur de destination peut continuer à demander des filtres jusqu'à ce qu'il en trouve un pris en charge.
Lorsqu'un filtre a été négocié avec succès, le fournisseur de source l'utilise pour déterminer les éléments à inclure pendant l'énumération des modifications.
Remarques à l'attention des implémenteurs : Une implémentation de cette méthode peut examiner le filtre spécifié par filter et filteringType, et retourner false pour indiquer que le filtre n'est pas pris en charge. Le fournisseur de destination peut alors demander différents filtres jusqu'à ce qu'un filtre pris en charge soit trouvé.
Exemple
L'exemple suivant implémente TryAddFilter. Le filtre est utilisé uniquement pour la synchronisation lorsqu'il est suivi par le 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);
}
Voir aussi
Référence
Interface ISupportFilteredSync
Membres ISupportFilteredSync
Espace de noms Microsoft.Synchronization