知识大全 ASP.NET MVC 4框架揭秘:基于IoC的DependencyResolver(2)
Posted 类型
篇首语:人生必须的知识就是引人向光明方面的明灯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET MVC 4框架揭秘:基于IoC的DependencyResolver(2)相关的知识,希望对你有一定的参考价值。
ASP.NET MVC 4框架揭秘:基于IoC的DependencyResolver(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
基于IoC的DependencyResolver( )
上面介绍的类型DefaultControllerFactory IControllerActivator DefaultControllerActivator IDependencyResolver DefaultDependencyResolver和DependencyResolver之前的关系基本上可以通过如图 所示的类图来体现
图 DefaultControllerFactory + ControllerActivator + DependencyResolver
实例演示 创建基于Ninject的DependencyResolver(S )
通过前面的介绍我们知道 当调用构造函数创建一个DefaultControllerFactory的时候 如果调用的时候默认无参构造函数 后者将作为参数的ControllerActivator对象设置为Null 那么默认请求用于激活Controller实例的是通过DependencyResolver类型的静态属性Current表示的DependencyResolver对象 换言之 我们可以通过自定义DependencyResolver的方式来实现基于IoC的Controller激活
同样是采用Ninject 我们定义了一个具有如下定义的NinjectDependencyResolver 与上面定义的NinjectControllerActivator类似 NinjectDependencyResolver具有一个IKernel类型的只读属性Kernel 该属性在构造函数中被初始化为一个StandardKernel对象 对于实现的GetService和GetServices方法 直接调用Kernel的TryGet和GetAll返回指定类型的实例和实例列表 为了方便进行类型映射 我们定义了泛型的Register<TFrom TTo>方法
public class NinjectDependencyResolver : IDependencyResolver
public IKernel Kernel get; private set;
public NinjectDependencyResolver()
this Kernel = new StandardKernel()
public void Register<TFrom TTo>() where TTo: TFrom
this Kernel Bind<TFrom>() To<TTo>()
public object GetService(Type serviceType)
return this Kernel TryGet(serviceType)
public IEnumerable<object> GetServices(Type serviceType)
return this Kernel GetAll(serviceType)
我们只需要创建一个自定义的NinjectDependencyResolver对象并将其作为当前的DependencyResolver即可 如下面的代码片段所示 我们创建了一个NinjectDependencyResolver对象并注册了IEmployeeRepository和EmployeeRepository之间的映射关系 然后调用DependencyResolver的静态方法SetResolver将创建的NinjectDependencyResolver注册为当前的DependencyResolver对象 再次运行我们的程序 依然会得到如图 所示的效果
public class MvcApplication : System Web HttpApplication
//其他成员
protected void Application_Start()
//其他操作
NinjectDependencyResolver dependencyResolver =
new NinjectDependencyResolver()
dependencyResolver Register<IEmployeeRepository EmployeeRepository>()
DependencyResolver SetResolver(dependencyResolver)
返回目录 ASP NET MVC 框架揭秘
编辑推荐
ASP NET开发培训视频教程
Microsoft NET框架程序设计视频教程
Java程序性能优化 让你的Java程序更快 更稳定
cha138/Article/program/net/201311/16064相关参考
知识大全 ASP.NET MVC 4框架揭秘:基于IoC的DependencyResolver(1)[2]
ASP.NETMVC4框架揭秘:基于IoC的DependencyResolver(1)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理
知识大全 ASP.NET MVC 4框架揭秘:基于IoC的DependencyResolver(1)[1]
ASP.NETMVC4框架揭秘:基于IoC的DependencyResolver(1)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理
知识大全 ASP.NET MVC 4框架揭秘:基于IoC的ControllerFactory(1)[2]
ASP.NETMVC4框架揭秘:基于IoC的ControllerFactory(1)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后
知识大全 ASP.NET MVC 4框架揭秘:基于IoC的ControllerFactory(1)[1]
ASP.NETMVC4框架揭秘:基于IoC的ControllerFactory(1)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后
知识大全 ASP.NET MVC 4框架揭秘:基于IoC的ControllerFactory(2)[2]
ASP.NETMVC4框架揭秘:基于IoC的ControllerFactory(2)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后
知识大全 ASP.NET MVC 4框架揭秘:基于IoC的ControllerFactory(2)[1]
ASP.NETMVC4框架揭秘:基于IoC的ControllerFactory(2)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后
知识大全 ASP.NET MVC 4框架揭秘:基于IoC的ControllerFactory(3)[1]
ASP.NETMVC4框架揭秘:基于IoC的ControllerFactory(3)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后
知识大全 ASP.NET MVC 4框架揭秘:基于IoC的ControllerFactory(3)[2]
ASP.NETMVC4框架揭秘:基于IoC的ControllerFactory(3)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后
知识大全 ASP.NET MVC 4框架揭秘:从Unity来认识IoC(2)
ASP.NETMVC4框架揭秘:从Unity来认识IoC(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来