知识大全 ASP.NET MVC 4框架揭秘:基于IoC的DependencyResolver(1)[1]
Posted 类型
篇首语:知识养成了思想,思想同时又在融化知识。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET MVC 4框架揭秘:基于IoC的DependencyResolver(1)[1]相关的知识,希望对你有一定的参考价值。
ASP.NET MVC 4框架揭秘:基于IoC的DependencyResolver(1)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
基于IoC的DependencyResolver( )
如果在构建DefaultControllerFactory的时候没有显式指定采用ControllerActivator 它默认使用的是一个类型为DefaultControllerActivator的对象 如下面的代码片段所示 这只是一个实现了IControllerActivator接口的私有类型 不能直接通过编程的方式使用它
private class DefaultControllerActivator : IControllerActivator
public DefaultControllerActivator()
public DefaultControllerActivator(IDependencyResolver resolver)
public IController Create(RequestContext requestContext
Type controllerType)
即使DefaultControllerFactory采用了默认的DefaultControllerActivator 依然可以将IoC引入到Controller的激活系统中 而这就需要进一步了解实现在DefaultControllerActivator的Controller激活逻辑了
其实DefaultControllerActivator完成对Controller的激活依赖于另一个名为DependencyResolver的对象 DependencyResolver是一个非常重要的组件 可以将其视为ASP NET MVC框架内部使用的IoC容器 它不只是用于针对Controller的激活 框架内部很多组件的提供最终都依赖于它 DependencyResolver实现了具有如下定义的System Web Mvc IDependencyResolver接口 GetService和GetServices方法分别用于根据指定的类型获取单个和所有实例
public interface IDependencyResolver
object GetService(Type serviceType)
IEnumerable<object> GetServices(Type serviceType)
整个Web默认使用的DependencyResolver可以通过System Web Mvc Dependency Resolver类型进行注册 如下面的代码片段所示 DependencyResolver类型具有一个静态的Current属性表示当前DependencyResolver 具体对DependencyResolver的注册通过调用静态方法SetResolver来完成 顺便说一下 DependencyResolver类型并没有实现IDependencyResolver接口 并不是真正意义上的DependencyResolver
public class DependencyResolver
//其他成员
private static DependencyResolver _instance;
public void InnerSetResolver(object monServiceLocator)
public void InnerSetResolver(IDependencyResolver resolver)
public void InnerSetResolver(Func<Type object> getService
Func<Type IEnumerable<object》 getServices)
public static void SetResolver(object monServiceLocator)
public static void SetResolver(IDependencyResolver resolver)
public static void SetResolver(Func<Type object> getService
Func<Type IEnumerable<object》 getServices)
public static IDependencyResolver Current get;
public IDependencyResolver InnerCurrent get;
这个被封装的DependencyResolver(指实现了接口IDependencyResolver的某个类型的对象 不是指DependencyResolver类型的对象 对于后者我们会采用 DependencyResolver类型对象 的说法)通过只读属性InnerCurrent表示 而三个InnerSetResolver方法重载用于初始化该属性 静态字段_instance表示当前的DependencyResolver类型对象 静态只读属性Current则表示该对象内部封装的DependencyResolver对象 而它通过三个静态的SetResolver进行初始化
cha138/Article/program/net/201311/16065相关参考
知识大全 ASP.NET MVC 4框架揭秘:基于IoC的DependencyResolver(2)
ASP.NETMVC4框架揭秘:基于IoC的DependencyResolver(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布
知识大全 ASP.NET MVC 4框架揭秘:基于IoC的DependencyResolver(1)[2]
ASP.NETMVC4框架揭秘:基于IoC的DependencyResolver(1)[2] 以下文字资料是由(全榜网网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)小编为大家搜集整理后发布的内容,让我们赶快一起来