我想使用NInject.MVC3來解析在控制器上調用Action方法時要實例化的具體類。因此,例如:Ninject MVC3中Action方法參數的依賴注入
[HttpPost]
public ActionResult Index(IMyModelInterface model)
{
// do something
return View();
}
顯然沒有依賴注入,MVC3不能實例化IMyModelInterface,但我可以說接口綁定到實現該接口的具體類。
我試過這個,只是從試圖實例化接口的MVC框架中得到錯誤。
因此,首先,這是一件不好的事情,試圖做?
如果這不是一件愚蠢的事情,我該怎麼做?
如果這是一件壞事,我該怎麼做。我考慮過使用ViewModel然後複製參數?我稍微不願意這樣做,因爲我的模型包含所有視圖使用的良好驗證屬性 - 並且必須在ViewModel中複製它,這似乎增加了維護開銷。
我已經看到使用Autofac的doing this的SO問題。
我正在使用來自Nuget包的NInject和NInject.MVC3的最新版本。
出於好奇,你爲什麼需要將它注入Action方法?爲什麼不能在控制器上使用構造函數注入? – BFree
我可以使用構造函數注入,如果我注入對某些服務的依賴關係,但我想在模型上使用DI,所以我可以從模型的一個實現切換到另一個。我現在稍微後悔這種選擇。 – iandotkelly