2009-08-28 8 views
0

j'ai somthing comme çaWinsdor enregistrer un type générique avec le paramètre constructeur

MyRepository<T> : IRepository<T> { 

    public MyRepository(string cs){ 
    .... 

}

donc je dois inscrire à Winsdor ce type générique et lui donner un paramètre

i ai essayé de le faire comme ceci:

Type t = typeof(IRepository<>); 
Type t1 = typeof(Repository<>); 
Hashtable props = new Hashtable(); 
props.Add("cs", "myconnstring"); 
container.AddComponentWithProperties("key1", t, t1, props); 

et je reçois l'erreur suivante

Impossible de créer le composant 'key1' car il a des dépendances à satisfaire. key1 attend les dépendances suivantes:

Touches (composants avec des clés spécifiques) - cs qui n'a pas été enregistré.

Répondre

3

Essayez ceci:

container.Register(Component.For(typeof(IRepository<>)) 
    .ImplementedBy(typeof(MyRepository<>)) 
    .Parameters(Parameter.ForKey("cs").Eq("myconnstring")); 

Vérifiez la fluent registration wiki pour plus d'informations.

+0

thnx man cela a bien fonctionné, je viens de mettre la valeur de cs dans Eq (valeur) – Omu

Questions connexes