1、MVC如何实例化控制器?
程序员文章站
2022-04-14 21:46:17
我们知道MVC请求进来,然后路由匹配,然后找到控制器和Action,最后会调用Action方法,但是大家想想控制器是个普通的类,Action是个普通的实例方法,要想调用Action必须先实例化控制器,那么MVC中如何实例化控制器的呢? 1、MVC请求进来会先进入到UrlRoutingHandler里 ......
我们知道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、controllerbuilder.getcontrollerfactory();得到默认的控制工厂defaultcontrollerfactory,然后通过defaultcontrollerfactory的createcontroller方法利用反射去创建controller实例
推荐阅读