深入分析ASP.NET Mvc 1.0 – 1. 深入MvcHandler
MvcHandler是一个mvc程序真正开始的地方,因为你可以直接看到并调试它的源码。 MvcHandler的主要代码如下:
这个方法的流程可以概括为: 找到Requst中的Controller name, 根据Controller name创建这个Controller, 执行这个Controller中执行被请求的Action。 具体分析如下: 1. 添加Http Header
添加一个Http Header: HTTP/1.1 200 OK … X-AspNetMvc-Version: 1.0… 2. 从路由表中找到请求的controller的名子
获取路由表中的controller name, 在下面的代码中根据这个controller name在缓存 中查找到对应的controller类型并生成controller类。 3. 返回一个IControllerFactory对象
返回一个继承自IControllerFactory接口的类的实例,这里默认返回 DefaultControllerFactory类。 ControllerBuilder属性是ControllerBuilder类的一个 静态实例,在mvc程序第一次启动时才会执行 ControllerBuilder类的默认构造函数,在 这个构造函数将DefaultControllerFactory类的一个实例传入到SetControllerFactory() 方法中,这样做的目地是定义GetControllerFactory()的具体返回类型。 ControllerBuilder类的构造函数代码如下:
所以想要改变GetControllerFactory()的默认返回类型的办法就是在执行 ControllerBuilder.GetControllerFactory()之前调用ControllerBuilder类中的 SetControllerFactory()方法,这个方法有两个重载
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |