C#高效反射調(diào)用方法類實(shí)例詳解
C#高效反射調(diào)用方法類
1.創(chuàng)建一個(gè)業(yè)務(wù)類(HomeService),在類下創(chuàng)建3個(gè)方法
2.正常方式調(diào)用類的方法
3.反射方式調(diào)用類的方法
4.調(diào)用代碼
5.調(diào)用結(jié)果
6.Service類方法代碼
內(nèi)容擴(kuò)展:
1、正常方式調(diào)用類的方法
/// <summary> /// 正常調(diào)用類的方法(parm1) /// </summary> /// <returns></returns> public string GetNormalMethod_2() { HomeService service = new HomeService(); //調(diào)用有參方法(name) string result = service.SayHello("李天"); //輸出調(diào)用信息 string strs = GetInvokeInfo("SayHello(string name)", result); return strs; }
2、反射方式調(diào)用類的方法
/// <summary> /// 通過(guò)反射調(diào)用類的方法(SayHello(string name)) /// </summary> public string GetInvokeMethod_2() { // 1.Load(命名空間名稱),GetType(命名空間.類名) Type type = Assembly.Load("StudyInvokeMethod").GetType("StudyInvokeMethod.HomeService"); //2.GetMethod(需要調(diào)用的方法名稱) MethodInfo method = type.GetMethod("SayHello", new Type[] { typeof(string) }); // 3.調(diào)用的實(shí)例化方法(非靜態(tài)方法)需要?jiǎng)?chuàng)建類型的一個(gè)實(shí)例 object obj = Activator.CreateInstance(type); //4.方法需要傳入的參數(shù) object[] parameters = new object[] { "李天"}; // 5.調(diào)用方法,如果調(diào)用的是一個(gè)靜態(tài)方法,就不需要第3步(創(chuàng)建類型的實(shí)例) // 相應(yīng)地調(diào)用靜態(tài)方法時(shí),Invoke的第一個(gè)參數(shù)為null string result = (string)method.Invoke(obj, parameters); //輸出調(diào)用信息 string strs = GetInvokeInfo("SayHello(string name)", result); return strs; }
相關(guān)文章
C#中數(shù)組、ArrayList、List、Dictionary的用法與區(qū)別淺析(存取數(shù)據(jù))
在工作中經(jīng)常遇到C#數(shù)組、ArrayList、List、Dictionary存取數(shù)據(jù),但是該選擇哪種類型進(jìn)行存儲(chǔ)數(shù)據(jù)呢?很迷茫,今天小編抽空給大家整理下這方面的內(nèi)容,需要的朋友參考下吧2017-02-02c#使用ManagedWifi查看當(dāng)前Wifi信號(hào)并選擇wifi的示例
這篇文章主要介紹了c#使用ManagedWifi查看當(dāng)前Wifi信號(hào)并選擇wifi的示例,需要的朋友可以參考下2014-04-04C#使用yield關(guān)鍵字構(gòu)建迭代器詳解
這篇文章主要為大家詳細(xì)介紹了C#使用yield關(guān)鍵字構(gòu)建迭代器的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10基于C# winform實(shí)現(xiàn)圖片上傳功能的方法
這篇文章主要介紹了基于C# winform實(shí)現(xiàn)圖片上傳功能的方法,很實(shí)用的功能,需要的朋友可以參考下2014-07-07c#實(shí)現(xiàn)圖片的平移和旋轉(zhuǎn)示例代碼
這篇文章主要給大家介紹了關(guān)于c#實(shí)現(xiàn)圖片的平移和旋轉(zhuǎn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08C#中實(shí)現(xiàn)一次執(zhí)行多條帶GO的sql語(yǔ)句實(shí)例
這篇文章主要介紹了C#中實(shí)現(xiàn)一次執(zhí)行多條帶GO的sql語(yǔ)句,以實(shí)例形式較為詳細(xì)的分析了C#執(zhí)行sql語(yǔ)句的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09