1、看源码MVC如何实例化控制器?
2024-09-30 05:49:39
我们知道MVC请求进来,然后路由匹配,然后找到控制器和Action,最后会调用Action方法,但是大家想想控制器是个普通的类,Action是个普通的实例方法,要想调用Action必须先实例化控制器,那么MVC中如何实例化控制器的呢?
1、MVC请求进来会先进入到UrlRoutingHandler里的ProcessRequest
2、然后进入到MVCHandler里的ProcessRequest
3、MVCHandler里的ProcessRequestInit,在这里面实例化控制器
1、string requiredString = this.RequestContext.RouteData.GetRequiredString("controller");路由匹配之后产生的结果集RouteData,得到requiredString字符串,requiredString是个完整类型名称
2、this.ControllerBuilder.GetControllerFactory();得到默认的控制工厂DefaultControllerFactory,然后通过DefaultControllerFactory的CreateController方法利用反射去创建Controller实例
最新文章
- MyBatis的mapper
- 如何动态在文档中加入<script></script>写入大段js
- 摘录ECMAScript官方文档中重要的两段话
- [已开源/文章教程]独立开发 一个社交 APP 的源码/架构分享 (已上架)
- 三分 --- CSU 1548: Design road
- NBUT 1457 Sona(莫队算法+离散化)
- linux shell 参数传递
- Ambry: LinkedIn’s Scalable Geo-Distributed Object Store
- Android 6.0 Permission权限与安全机制
- [转]Laravel 4之控制器
- 基于CentOS 5.4搭建nginx+php+spawn-fcgi+mysql高性能php平台
- Java用jdom.jar解析读取XML文件信息
- js03-javascript对象
- Viterbi algorithm
- 审核流(1)SNF.WorkFlow审核流简介--SNF快速开发平台3.1
- ajax提交完表单数据依然跳转的解决办法
- 2019.01.22 zoj3583 Simple Path(并查集+枚举)
- PAC Manager的重生: Asbru
- Fuckey V1.0 Beta版发布!!!
- 记开发个人图书收藏清单小程序开发(六)Web开发
热门文章
- The absolute uri: [http://java.sun.com/jsp/jstl/core] cannot be resolved in either web.xml or the jar files deployed with this application] with root cause异常处理及解释
- 基于xtrabackup实现mysql备份还原
- word2vec C源码解析
- 【JavaEE】之MyBatis开发DAO
- python_排序
- 本地Docker Jenkins构建dotnet core web应用到Linux服务器 Docker上
- mybatis中因为不理解$与#而出现的bug
- iOS13暂时关闭黑暗模式+应用内状态栏无法显示问题解决办法
- FF.PyAdmin 接口服务/后台管理微框架 (Flask+LayUI)
- 面试阿里被分布式“搞懵”,Redis、MongoDB、memcached没答上来