我刚开始使用Ninject 2.0和ASP.NET MVC 2。 所以,我有一个接口IMongoRepository和类MongoRepository。
MongoRepository接收参数字符串集合。
根据我想要使用的集合,我在MongoRepository的参数中传入一个不同的值。 我希望我正确地说这个,但是我如何根据我使用的控制器映射不同的参数?
例如,在Article控制器中我会调用:
_articlesRepository = new MongoRepository("Articles");
在PageController中我会调用:
_pagesController = new MongoRepository("Pages");
我想做的只是做构造函数注入,然后传入IMongoRepository。 有什么想法或建议吗?
顺便说一下,我刚刚学习了IOC / DI;所以,我愿意接受IOC忍者的任何提示! 谢谢!
答案 0 :(得分:11)
尝试以下方法:
Bind<IMongoRepository>().To<MongoRepository>().WhenInjectedInto<ArticleController>().WithConstructorArgument("topic", "Article");
Bind<IMongoRepository>().To<MongoRepository>().WhenInjectedInto<PagesController>().WithConstructorArgument("topic", "Pages");
假设构造函数的参数名为topic
。