48 votes

Ninject + Bind référentiel générique

J'essaie de lier une interface IRepository générique <> à mon référentiel générique <>, mais renvoie-t-il toujours la valeur null?

J'ai essayé diverses choses comme:

 Bind(typeof(IRepository<CustomerModel>)).To(typeof(Repository<CustomerModel>)); 
Bind(typeof(IRepository<>)).To(typeof(Repository<>)); 
 

Cependant, si je passe dans une interface et une classe non génériques, alors cela fonctionne comme dans un rêve?

83voto

qes Points 11681
 Bind(typeof(IRepository<>)).To(typeof(Repository<>));
 

C'est la syntaxe correcte pour lier un générique ouvert.

Si vous recevez null en retour lorsque vous demandez IRepository <of what>, il peut y avoir un autre problème dans une zone de code que vous n'avez pas partagée.

3voto

Remo Gloor Points 26195

Voir ma réponse sur le constructeur du contrôleur MVC3 + Ninject .

La liaison générique fonctionne correctement dans Ninject. Essayez d’utiliser un constructeur sans paramètre dans le référentiel. Je pense que le problème est là.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X