知识大全 ASP.NET MVC 4框架揭秘:基于IoC的ControllerFactory(1)[1]

Posted 员工

篇首语:笛里谁知壮士心,沙头空照征人骨。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET MVC 4框架揭秘:基于IoC的ControllerFactory(1)[1]相关的知识,希望对你有一定的参考价值。

ASP.NET MVC 4框架揭秘:基于IoC的ControllerFactory(1)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

     基于IoC的ControllerFactory( )

  ASP NET MVC的Controller激活系统最终通过ControllerFactory来创建目标Controller对象 要将IoC引入ASP NET MVC并通过对应的IoC容器实现对目标Controller的激活 我们很自然地会想到自定义一个基于IoC的ControllerFactory

  对于自定义ControllerFactory 可以直接实现IControllerFactory接口创建一个全新的ControllerFactory类型 这需要实现包括Controller类型的解析 Controller实例的创建与释放以及会话状态行为选项的获取在内的所有功能 一般来说 Controller实例的创建才需要IoC容器的控制 为了避免重新实现其他的功能 可以直接继承DefaultControllerFactory 重写Controller实例创建的逻辑

  实例演示 创建基于Unity的ControllerFactory(S )

  现在我们通过一个简单的实例演示如何通过自定义ControllerFactory利用Unity进行Controller的激活 为了避免针对Controller类型解析 会话状态行为选项的获取和对Controller对象的释放逻辑的重复定义 我们直接继承DefaultControllerFactory 将该自定义ControllerFactory命名为UnityControllerFactory 如下面的代码片段所示 UnityControllerFactory仅仅重写了受保护的虚方法GetControllerInstance 将成功解析的Controller类型作为调用UnityContainer的Resolve方法的参数 而返回值就是需要被激活的Controller实例

  public class UnityControllerFactory: DefaultControllerFactory

  

  public IUnityContainer UnityContainer get; private set;

  public UnityControllerFactory(IUnityContainer unityContainer)

  

  this UnityContainer = unityContainer;

  

  protected override IController GetControllerInstance(

  RequestContext requestContext Type controllerType)

  

  if (null == controllerType)

  

  return null;

  

  return (IController)this UnityContainer Resolve(controllerType)

  

  

  整个自定义的UnityControllerFactory就这么简单 为了演示IoC在它身上的体现 我们在一个简单的ASP MVC实例中来使用它 我们沿用在第 章 URL路由 中使用过的关于 员工管理 的场景 如图 所示 本实例由两个页面(对应着两个View)组成 一个用于显示员工列表 另一个用于显示基于某个员工的详细信息

  图   员工列表和员工详细信息页面

cha138/Article/program/net/201311/16073

相关参考

知识大全 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的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(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)小编为大家搜集整理后发布的内容,让我们赶快一起来