我们知道MVC请求进来,然后路由匹配,然后找到控制器和Action,最后会调用Action方法,但是大家想想控制器是个普通的类,Action是个普通的实例方法,要想调用Action必须先实例化控制器,那么MVC中如何实例化控制器的呢?

1、MVC请求进来会先进入到UrlRoutingHandler里的ProcessRequest

1、看源码MVC如何实例化控制器?

 2、然后进入到MVCHandler里的ProcessRequest

1、看源码MVC如何实例化控制器?

3、MVCHandler里的ProcessRequestInit,在这里面实例化控制器

1、string requiredString = this.RequestContext.RouteData.GetRequiredString("controller");路由匹配之后产生的结果集RouteData,得到requiredString字符串,requiredString是个完整类型名称

1、看源码MVC如何实例化控制器?

1、看源码MVC如何实例化控制器?

2、this.ControllerBuilder.GetControllerFactory();得到默认的控制工厂DefaultControllerFactory,然后通过DefaultControllerFactory的CreateController方法利用反射去创建Controller实例

1、看源码MVC如何实例化控制器?

相关文章:

  • 2022-12-23
  • 2021-12-10
  • 2021-06-10
  • 2021-11-24
  • 2022-01-05
  • 2022-12-23
  • 2022-01-09
  • 2021-09-21
猜你喜欢
  • 2022-03-05
  • 2021-11-15
  • 2021-10-17
  • 2021-09-01
  • 2021-10-16
  • 2022-03-05
相关资源
相似解决方案