MyMVC框查找Action的过程详解
首先,我们要先在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免费视频教程
以上是MyMVC框查找Action的过程详解的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

大疆尚未确认推出新运动相机的计划。相反,GoPro 今年似乎会领先于竞争对手,并透露将于 9 月 4 日推出两款新的运动相机。

自 DJI 发布 Osmo Action 4(亚马逊售价 299 美元)以来已经过去了近一年。从那时起,该公司开始专注于其他部门,包括新型 RS 相机万向节。最重要的是,它还推出了各种无人机,例如 Avata

Insta360 发布了一款新的运动相机,这是继 Insta360X4(亚马逊售价 499.99 美元)之后的第二款运动相机。不出所料,该公司推出了 Go3S,它是 Go3 的升级版,增加了 4K 视频录制功能。

某些情况,我们希望在Vuex中进行一些异步操作, 比如网络请求, 必然是异步的,这个时候怎么处理呢?下面就给大家介绍Vuex状态管理之Action异步操作,希望对需要的朋友有所帮助!

GoPro 现在推出了年度运动相机更新。与近年来不同的是,该公司决定发布两款车型。然而,它并没有回归 360 度相机,尽管去年这个时候就曾戏称它将取代 Max wi

elasticsearch中的绝大部分操作都是通过相应的action,这些action在action包中。它的结构如下图所示:上图是action包的部分截图,这里面对应着各个功能的action。各个action的包也都非常类似于index。这些action的实现也非常类似,都是基础自action,下图是indexaction的继承关系:因为这些action并未真正实现相应的功能,只是一个代理,因此实现上也非常简单。他们的主要作用是提供新建response和request的方法及对应的action

全新 GoPro 运动相机的详细信息以及 Hero 13 Black 的相关信息已在网上泄露。请注意,据说下面包含的信息来自亚马逊美国列表,该列表现已被删除

Amazfit GTR 3 Pro 限量版目前在亚马逊仅售 124.99 美元,比标价 209.99 美元下降了 40%。与标准版的铝制外壳相比,Amazfit GTR 3 Pro限量版采用了手工抛光染色
