1、MVC如何實例化控制器?

我們知道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實例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章