麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

C# 通過反射實(shí)現(xiàn)類似MVC路由的機(jī)制

2019-11-17 02:57:54
字體:
供稿:網(wǎng)友

C# 通過反射實(shí)現(xiàn)類似MVC路由的機(jī)制

  最近封裝了個(gè)功能非常類似于MVC的路由。//MVC路由機(jī)制先找到Controller Action


  • 什么是反射

反射(Reflection)是.NET中的重要機(jī)制,通過放射,可以在運(yùn)行時(shí)獲 得.NET中每一個(gè)類型(包括類、結(jié)構(gòu)、委托、接口和枚舉等)的成員,包括方法、屬性、事件,以及構(gòu)造函數(shù)等。還可以獲得每個(gè)成員的名稱、限定符和參數(shù) 等。有了反射,即可對(duì)每一個(gè)類型了如指掌。如果獲得了構(gòu)造函數(shù)的信息,即可直接創(chuàng)建對(duì)象,即使這個(gè)對(duì)象的類型在編譯時(shí)還不知道。


  • 實(shí)現(xiàn)思路

先是根據(jù)DLL名稱進(jìn)行裝載,然后反射根據(jù)類型查找類,在根據(jù)方法名查找方法。可能作者才疏學(xué)淺寫的不是很好,希望大家可以多多指出。幫助我提升。

以下代碼

 1 //獲取程序集名稱 如果配置程序集名稱為空,就使用當(dāng)前的程序集名稱 2                 var assemblyName = ConfigurationManager.AppSettings["asseName"] == null ? Assembly.GetExecutingAssembly().GetName().Name : ConfigurationManager.AppSettings["asseName"].ToString(); 3                 var className= "className";//類名 4                 var methodName = "methodName";//方法名 5  6                 if (string.IsNullOrEmpty(assemblyName)) 7                     throw new Exception("程序集名稱不能為空"); 8                 if (string.IsNullOrEmpty(className)) 9                     throw new Exception("類名不能為空");10 11                 //反射指定的DLL,并根據(jù)類名查找類 類的訪問修飾符一定要是 public12                 Type type = Assembly.Load(assemblyName).GetExportedTypes().FirstOrDefault(13                     o => o.Name.IndexOf(domainResourceIndex, StringComparison.OrdinalIgnoreCase) >= 0);14 15                 if (type != null)16                 {17                     //創(chuàng)建類的實(shí)例18                     object obj = (object)Activator.CreateInstance(type);19                     //根據(jù)傳入方法名,查找方法20                     MethodInfo pMethod = type.GetMethod(methodName);21 22                     if (pMethod != null)23                     {24                         //執(zhí)行25                         pMethod.Invoke(obj, new object[] { request, response });26                     }27                     else28                     {29                         throw new Exception("沒有找到方法");30                     }31                 }32                 else33                 {34                     throw new Exception("沒有找到類");35                 }

轉(zhuǎn)載請(qǐng)注明http://www.companysz.com/cainiaodage/p/3924165.html


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 激情久久免费视频 | www69xxxxx| 免费a视频在线观看 | 国产亚洲激情 | 欧美黄色片一级 | 国产精品一区二区三区在线播放 | 国产精品白嫩白嫩大学美女 | 日本欧美一区二区三区视频麻豆 | 中文字幕在线播放第一页 | 最新91在线视频 | 亚洲综合网站 | 免费a级片在线观看 | 久久老司机| 一级黄色a视频 | 视频一区二区三区在线播放 | 午夜生活理论片 | 99国产精品自拍 | 男女生羞羞视频网站在线观看 | 久久久99精品视频 | 欧美日韩国产成人在线 | 精品成人久久久 | 色淫影院 | 中国久久久| 色999中文字幕 | 久久9久久| 免费网站看v片在线a | 国产成人免费精品 | 精品一区二区免费 | 日本在线不卡一区二区 | 亚洲男人的天堂在线视频 | 欧美韩国日本在线 | 欧美久久一区二区 | 国产69精品久久久久久野外 | 亚洲精品一区二区三区免 | 男女做性免费网站 | 九色中文字幕 | 一级做a爱片毛片免费 | 亚洲日本高清 | 狠狠色成色综合网 | 少妇一级淫片高潮流水电影 | 精品国产一区二区三区四区阿崩 |