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

MongoRepository接收参数字符串集合。

根据我要使用的集合,我为MongoRepository的参数传递了一个不同的值。
我希望我的措词正确,但是如何根据所使用的控制器来映射不同的参数?

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

_articlesRepository = new MongoRepository("Articles");

在PageController中,我将调用:
_pagesController = new MongoRepository("Pages");

我想做的就是进行构造函数注入,然后传入IMongoRepository。
有什么想法或建议吗?

顺便说一句,我只是在学习IOC / DI。因此,我愿意接受国际奥委会忍者的任何提示!
谢谢!

最佳答案

请尝试以下操作:

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

假设构造函数的参数称为topic

10-07 16:51