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免费视频教程
Atas ialah kandungan terperinci MyMVC框查找Action的过程详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











DJI belum mengesahkan sebarang rancangan untuk memperkenalkan kamera aksi baharu lagi. Sebaliknya, nampaknya GoPro akan mendahului pesaingnya tahun ini, setelah mengusik bahawa ia akan memperkenalkan dua kamera aksi baharu pada 4 September. Untuk konteks, ini dijangka

Hampir setahun telah berlalu sejak DJI mengeluarkan Osmo Action 4 (kurr. $299 di Amazon). Sejak itu, syarikat itu telah memberi tumpuan kepada bahagian lainnya, termasuk gimbal kamera RS baharu. Selain itu, ia juga telah memperkenalkan pelbagai dron seperti Avata

Insta360telah mengeluarkan kamera pelakon, yang kedua dalam tahun selepasInsta360X4(semasa $499.99 pada Amazon). Seperti yang dijangkakan, syarikat itu telah memperkenalkan Go3S, menaik taraf bahawaGo3that menambah 4K keupayaan rakaman video. Khususnya, semasa Inst

Dalam sesetengah kes, kami ingin melakukan beberapa operasi tak segerak dalam Vuex, seperti permintaan rangkaian, yang mesti tidak segerak Bagaimana untuk menangani situasi ini Di bawah saya akan memperkenalkan kepada anda operasi tak segerak bagi pengurusan keadaan Vuex membantu rakan-rakan yang memerlukan!

GoPro kini telah memperkenalkan penyegaran kamera tindakan tahunannya. Tidak seperti beberapa tahun kebelakangan ini, syarikat itu telah memutuskan untuk mengeluarkan dua model. Walau bagaimanapun, ia tidak kembali ke kamera 360 darjah, walaupun kali ini mengusik tahun lepas bahawa ia akan menggantikan Max wi

Kebanyakan operasi dalam elasticsearch adalah melalui tindakan yang sepadan, yang terdapat dalam pakej tindakan. Strukturnya ditunjukkan dalam rajah di bawah: Rajah di atas ialah tangkapan skrin separa pakej tindakan, yang sepadan dengan tindakan setiap fungsi. Pakej setiap tindakan juga sangat serupa dengan indeks. Pelaksanaan tindakan ini juga sangat serupa, semuanya adalah tindakan kendiri asas Rajah berikut menunjukkan hubungan pewarisan indexaction: Oleh kerana tindakan ini sebenarnya tidak melaksanakan fungsi yang sepadan, ia hanyalah proksi, jadi pelaksanaannya juga. sangat mudah. Fungsi utama mereka adalah untuk menyediakan kaedah untuk mencipta respons dan permintaan baharu serta tindakan yang sepadan.

Butiran kamera tindakan GoPro yang benar-benar baharu telah bocor dalam talian bersama maklumat yang setara tentang Hero 13 Black. Sila ambil perhatian bahawa maklumat yang terkandung di bawah dikatakan berasal dari penyenaraian Amazon AS yang sejak itu telah dialih keluar

Amazfit GTR 3 Pro Edisi Terhad kini dijual di Amazon dengan harga hanya $124.99, turun 40% daripada harga senarainya $209.99. Berbanding dengan versi standard yang mempunyai bekas aluminium, Amazfit GTR 3 Pro Edisi Terhad menggunakan noda yang digilap tangan
