rid*_*nsb 21 dependency-injection ninject asp.net-mvc-3
我通过Nuget 在我的项目Ninject.MVC3上安装了.
我读到这篇文章,为了在我的控制器中注入依赖项,你所要做的就是安装Ninject,在NinjectMVC3.cs中添加我的依赖项并准备就绪.
到目前为止这么好,但如何检索对象的实例?
public ActionResult MyAction()
{
var myObject = /* HERE ??*/
}
Run Code Online (Sandbox Code Playgroud)
在控制器的构造函数中我没有问题!
public class AccountController : Controller
{
public AccountController(IRepository repository) { ... } //This works!!
}
Run Code Online (Sandbox Code Playgroud)
Bui*_*ted 35
它起作用的原因是因为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));
}
Run Code Online (Sandbox Code Playgroud)
虽然很棒.对于依赖注入新手(包括我自己)的人来说,这种情况经常发生.问题是为什么你需要这样做?
| 归档时间: |
|
| 查看次数: |
14178 次 |
| 最近记录: |