在大多數的樣品我看到在網絡上,DI在MVC控制器可以是這樣在ASP.NET MVC控制器中注入依賴的不同方法?
public ProductController(IProductRepository Rep)
{
this._rep = Rep;
}
使用自定義的ControllerFactory完成,它利用選擇的DI框架和庫注入。
爲什麼上面的考慮優於
public ProuctController()
{
this._rep = ObjectFactory.GetInstance<IProductRepository>();
}
這將得到相同的結果,但並不需要自定義控制器工廠。
就測試而言,測試應用程序可以有一個單獨的BootStrapper。通過這種方式,當控制器正在測試時,他們可以獲得虛假的存儲庫,當他們被使用時,他們會得到真正的存儲庫。