MyMVC框查找Action的流程詳解

Y2J
發布: 2017-05-17 11:30:31
原創
1874 人瀏覽過

首先,我們要先在web.config中註冊MyMVC的HttpHandlerFactory,它是整個框架的入口。
在ASP.NET的管線過程中,會呼叫GetHandler()方法,終於我的程式碼有機會運作了!
框架執行的第一行程式碼是:

// 根据请求路径,定位到要执行的ActionControllerActionPair pair = UrlParser.ParseAjaxUrl(virtualPath);
登入後複製
public sealed class ControllerActionPair{    public string Controller;    public string Action;}
静态方法UrlParser.ParseAjaxUrl()就是专门用来解析URL并返回ControllerActionPair的:
登入後複製

程式碼很簡單,核心其實就是那個正規表示式,從URL中擷取Controller,Action的名字全靠它。
至於正規表示式的使用,我想這是個基本功,這裡就略過了。

再來看AjaxHandlerFactory的第二個呼叫:

// 获取内部表示的调用信息InvokeInfo vkInfo = ReflectionHelper.GetAjaxInvokeInfo(pair);
登入後複製

ReflectionHelper類別是一個內部使用的工具類,專門用於反射處理,AjaxAction查找過程的相關程式碼如下(注意程式碼中的註解): 

上面就是AjaxAction找相關的4段程式碼:
1. 在ReflectionHelper的靜態建構子中,我載入了所有AjaxController。
2. GetAjaxController方法用於根據一個Controller的名字傳回Controller的類型描述。
3. GetAjaxAction方法用於根據Controller的類型以及要呼叫的Action的名字傳回Action的描述資訊。
4. GetAjaxInvokeInfo方法用於根據從AjaxHandlerFactory得到的ControllerActionPair描述轉成更具體的描述資訊。

程式碼中,Action的尋找過程採用了延遲的載入模式,保存Action描述資訊的集合我採用了執行緒安全的Hashtable

##【相關推薦】

1.

特別推薦「php程式設計師工具箱」V0.1版本下載

2.

ASP免費影片教學

3. 

#入門級的.NET MVC 實例

4. 

. NET MyMVC架構執行Action的過程詳解

#5. 

.NET MyMVC架構如何為方法賦值的教學

6. 

.NET MyMVC框架處理傳回值的教學#

以上是MyMVC框查找Action的流程詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!