Bonjour,

j'aurais une petite question à vous poser. Voila , j'ai un objet utilisateur qui possedent une collection de filtres defini comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
public abstract class UserProvider : IUser
    {
 
     public FilterLibrary Filters;
   }
FilterLibrary etant une liste de FilterProvider qui est une classe abstraite.
Cette classe est tres pratique car elle me permet de centraliser les points communs a tous les filtres.

Je derive cette classe pour obtenir un filtre precis pour par exemple extraire un catalogue :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 public class CatalogItemFilter : FilterProvider
    {
        public int NodeLevel { get; set; }
        public bool ShowSubTree { get; set; }
 
        public CatalogItemFilter()
        {
 
        }
 
    }
Jusqu'ici point de souci, apr contre lorsque j'utilise ce systeme je me retrovue avec quelquechose qui n'est pas tres joli :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
((CatalogItemFilter)CurrentUser.Filters_
            _[typeof(CatalogItemFilter)]).NodeLevel;
Pour recuperer mon filtre dans ma liste je le choisis en fonction de son type, cela est tres bien car si je veux un filtre sur le catalog, je lui dit et il me le trouve. Apr contre du fait de cette construction je suis obligé de le recaster car la liste contenu dans FilterLibrary est une lsite de filterLibrary.

Manque je quelquechose dans cette architecture? Je trouve cela malheureux d'avoir a spécifier 2 fois mon type..

Merci d'avance de vos idées..