3

Je viens de commencer à travailler avec Ninject 2.0 avec ASP.NET MVC 2. J'ai donc une interface IMongoRepository et une classe MongoRepository. MongoRepository reçoit une collection de chaînes de paramètres.Ninject 2.0: Passer différents paramètres en fonction de l'implémentation

Selon la collection que je veux utiliser, je passe une valeur différente dans le paramètre pour MongoRepository. J'espère que je formule correctement, mais comment est-ce que je pourrais mapper des paramètres différents en fonction du contrôleur que j'utilise?

Par exemple, dans le contrôleur de l'article que je qualifierais:

_articlesRepository = new MongoRepository("Articles"); 

et dans le PageController je qualifierais:

_pagesController = new MongoRepository("Pages"); 

Ce que je voudrais faire est tout simplement faire l'injection de constructeur et juste passer dans IMongoRepository. Des idées ou des suggestions? En passant, je ne fais que m'informer sur le CIO/DI; Je suis donc ouvert à tous les conseils des ninjas du CIO! Merci!

+0

Ce lien semble prometteur! http://stackoverflow.com/questions/3313940/ninject-to-bind-on-different-controllers – Abe

Répondre

11

les opérations suivantes:

Bind<IMongoRepository>().To<MongoRepository>().WhenInjectedInto<ArticleController>().WithConstructorArgument("topic", "Article"); 
Bind<IMongoRepository>().To<MongoRepository>().WhenInjectedInto<PagesController>().WithConstructorArgument("topic", "Pages"); 

En supposant que l'argument du constructeur est appelé topic.