Asp.net-Mvc-3
使用 Ninject 獲取對象的實例
我通過 Nuget 在我的項目Ninject.MVC3上安裝。
我讀過這篇文章,要在我的控制器中註入依賴項,你所要做的就是安裝 Ninject,在 NinjectMVC3.cs 中添加我的依賴項並準備好。
到目前為止一切順利,但是如何檢索對象的實例?
public ActionResult MyAction() { var myObject = /* HERE ??*/ }在控制器的建構子中我沒有問題!
public class AccountController : Controller { public AccountController(IRepository repository) { ... } //This works!! }
它起作用的原因是因為 ControllerFactory 會查找 DI 並自動添加它。如果你想獲得一個特定的實例,你可以這樣做:
private static void RegisterServices(IKernel kernel) { kernel.Bind<ICoolObject>().To(CoolObject); } public ActionResult MyAction() { var myObject = System.Web.Mvc.DependencyResolver.Current.GetService(typeof (ICoolObject)); }不過要小心。依賴注入的新手(包括我自己)經常這樣做。問題是為什麼你需要這樣做?