Asp.net-Mvc
Ninject 如何在 ASP.NET MVC 中創建控制器?
這可能是個愚蠢的問題,但我正在查看 Ninject 來源,並沒有看到 NInject 註冊了自己的控制器工廠。我也沒有在彙編中看到任何
IControllerFactory課程。Ninject.Web.Mvc我錯過了什麼嗎?Ninject 如何創建控制器並將參數注入建構子?
- 假設我們正在尋找“/Task/Index”。
- 現在使用 Ninject MVC 應用程序
DefaultControllerFactory,與非 Ninject 應用程序相同。DefaultControllerFactory查找控制器 (TaskController) 的類型。DefaultControllerFactory有內部類稱為DefaultControllerActivator.DefaultControllerActivator有方法呼叫Create,它返回控制器實例。DefaultControllerFactory要求類型實例DefaultControllerActivator。TaskControllerDefaultControllerActivator.Create使用IDependencyResolver. 這就是Ninject進來的地方。由於Ninject實現了自己的解析器並在應用程序開始時設置它,因此他得到了請求TaskController。- 其餘的很容易。
Ninject找到這種類型的建構子,注入參數,返回控制器實例。