Agenda
- 前言
- InvokeAction方法
- 在Controller類別中 重要方法ExecuteCore()
- 取得執行的ActionInvoker(AsyncControllerActionInvoker)
- ControllerActionInvoker呼叫InvokeAction方法
- Asp.net AOP機制揭密(Filter)
- FilterProviderCollection的GetFilters方法(額外註冊過濾器)
- 小結
前言
前面介紹完 Asp.net MVC解析器和IOC容器之間關係
本篇要介紹Controller
如何去呼叫使用的Action
方法.
ExecuteCore
是ControllerBase
類別提供給Controller
來實作Hook方法.
我有做一個可以針對於Asp.net MVC Debugger的專案,只要下中斷點就可輕易進入Asp.net MVC原始碼.
InvokeAction方法
之前說到MVC呼叫ControllerBase.Execute
方法,其中這個方法做了幾件事情
VerifyExecuteCalledOnce
方法對於同步請求做一個防呆機制(不允許同一時間處理相同請求)Initialize
初始化資料- 呼叫
ExecuteCore
抽象方法(由Controller
實現)