在大多数的样品我看到在网络上,DI在MVC控制器可以是这样在ASP.NET MVC控制器中注入依赖的不同方法?
public ProductController(IProductRepository Rep)
{
this._rep = Rep;
}
使用自定义的ControllerFactory完成,它利用选择的DI框架和库注入。
为什么上面的考虑优于
public ProuctController()
{
this._rep = ObjectFactory.GetInstance<IProductRepository>();
}
这将得到相同的结果,但并不需要自定义控制器工厂。
就测试而言,测试应用程序可以有一个单独的BootStrapper。通过这种方式,当控制器正在测试时,他们可以获得虚假的存储库,当他们被使用时,他们会得到真正的存储库。