cho*_*bo2 14 asp.net-mvc ninject ninject-2 asp.net-mvc-3
在MVC 3中,他们添加了一个依赖解析器,我一直在使用它.在回答某人的问题时,有人评论过你应该使用Ninject MVC 3插件.
所以我的问题是为什么用它来构建一个?如果是这样的话你怎么设置它?
所以上面是我回答的问题的链接.
Nat*_*lor 15
ASP.NET MVC 3提供了一个依赖注入服务,它将挂钩到您选择实现的任何依赖项解析器.Ninject MVC 3插件的功能非常简单,因为它必须做的只是实现System.Web.Mvc.IDependencyResolver中定义的类型解析方法,并调用相应的Ninject方法来返回请求的类型.
无论您选择使用自己的IDependencyResolver并将其映射到Ninject(或任何其他依赖注入框架),或者您选择使用免费提供的Ninject MVC 3插件,大多数都是微不足道的区别.
这是一个功能齐全的例子,说明手动滚动,与Ninject兼容的IDependencyResolver可能是什么样子.Ninject MVC 3插件基本上非常相似:
public class NinjectDependencyResolver : IDependencyResolver
{
private readonly IKernel _kernel;
public NinjectDependencyResolver(IKernel kernel) {
_kernel = kernel;
}
public object GetService(Type serviceType) {
return _kernel.TryGet(serviceType, new IParameter[0]);
}
public IEnumerable<object> GetServices(Type serviceType) {
return _kernel.GetAll(serviceType, new IParameter[0]);
}
}
Run Code Online (Sandbox Code Playgroud)
这里的关键点是ASP.NET MVC不提供完整的依赖注入框架 ; 它仅提供在整个ASP.NET MVC请求管道(控制器分辨率,视图分辨率等)中的特定点通过IoC容器(即Ninject)检索所需类型实例所需的层.
注意:如果我使用的任何术语不太准确,请通知我.
Rem*_*oor 13
Ninject.Web.MVC扩展(或Ninject.MVC3 NuGet包)也在内部使用依赖解析器.所以基本上它使用相同的机制.但是有几个原因使用扩展而不是实现自己的依赖解析器:
| 归档时间: |
|
| 查看次数: |
10091 次 |
| 最近记录: |