Ninject 2.0:根据实现传递不同的参数

Abe*_*Abe 3 dependency-injection ninject constructor-injection ninject-2 asp.net-mvc-2

我刚刚开始使用Ninject 2.0和ASP.NET MVC 2.因此,我有一个接口IMongoRepository和类MongoRepository.

MongoRepository接收参数字符串集合.

根据我想要使用的集合,我在MongoRepository的参数中传入一个不同的值.我希望我正确地说这个,但是我如何根据我使用的控制器映射不同的参数?

例如,在Article控制器中我会调用:

_articlesRepository = new MongoRepository("Articles");
Run Code Online (Sandbox Code Playgroud)

在PageController中我会调用:

_pagesController = new MongoRepository("Pages");
Run Code Online (Sandbox Code Playgroud)

我想做的只是做构造函数注入,然后传入IMongoRepository.任何想法或建议?

顺便说一句,我只是在学习IOC/DI; 所以,我愿意接受IOC忍者的任何提示!谢谢!

Rem*_*oor 11

请尝试以下方法:

Bind<IMongoRepository>().To<MongoRepository>().WhenInjectedInto<ArticleController>().WithConstructorArgument("topic", "Article");
Bind<IMongoRepository>().To<MongoRepository>().WhenInjectedInto<PagesController>().WithConstructorArgument("topic", "Pages");
Run Code Online (Sandbox Code Playgroud)

假设调用构造函数的参数topic.