国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C# 通過反射實現類似MVC路由的機制

2019-11-17 02:57:54
字體:
來源:轉載
供稿:網友

C# 通過反射實現類似MVC路由的機制

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


  • 什么是反射

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


  • 實現思路

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

以下代碼

 1 //獲取程序集名稱 如果配置程序集名稱為空,就使用當前的程序集名稱 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,并根據類名查找類 類的訪問修飾符一定要是 public12                 Type type = Assembly.Load(assemblyName).GetExportedTypes().FirstOrDefault(13                     o => o.Name.IndexOf(domainResourceIndex, StringComparison.OrdinalIgnoreCase) >= 0);14 15                 if (type != null)16                 {17                     //創建類的實例18                     object obj = (object)Activator.CreateInstance(type);19                     //根據傳入方法名,查找方法20                     MethodInfo pMethod = type.GetMethod(methodName);21 22                     if (pMethod != null)23                     {24                         //執行25                         pMethod.Invoke(obj, new object[] { request, response });26                     }27                     else28                     {29                         throw new Exception("沒有找到方法");30                     }31                 }32                 else33                 {34                     throw new Exception("沒有找到類");35                 }

轉載請注明http://www.survivalescaperooms.com/cainiaodage/p/3924165.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 紫云| 茶陵县| 绥滨县| 罗山县| 雷州市| 花垣县| 延吉市| 原平市| 平邑县| 满洲里市| 寻甸| 琼海市| 麟游县| 定安县| 嘉祥县| 台中县| 黔南| 澄迈县| 正蓝旗| 禄劝| 安达市| 平定县| 通许县| 彭水| 娄底市| 修水县| 和硕县| 沙河市| 新巴尔虎左旗| 康马县| 商南县| 丽江市| 南雄市| 临湘市| 禄丰县| 东阳市| 丹寨县| 泾源县| 云林县| 泾源县| 潞西市|