C#高效反射調用方法類實例詳解
更新時間:2019年07月02日 11:33:47 作者:ITMFB
在本篇文章中小編給大家分享的是關于C#高效反射調用方法類的相關實例內容,有興趣的朋友們學習下。
C#高效反射調用方法類
1.創(chuàng)建一個業(yè)務類(HomeService),在類下創(chuàng)建3個方法
2.正常方式調用類的方法
3.反射方式調用類的方法
4.調用代碼
5.調用結果
6.Service類方法代碼
內容擴展:
1、正常方式調用類的方法
/// <summary> /// 正常調用類的方法(parm1) /// </summary> /// <returns></returns> public string GetNormalMethod_2() { HomeService service = new HomeService(); //調用有參方法(name) string result = service.SayHello("李天"); //輸出調用信息 string strs = GetInvokeInfo("SayHello(string name)", result); return strs; }
2、反射方式調用類的方法
/// <summary> /// 通過反射調用類的方法(SayHello(string name)) /// </summary> public string GetInvokeMethod_2() { // 1.Load(命名空間名稱),GetType(命名空間.類名) Type type = Assembly.Load("StudyInvokeMethod").GetType("StudyInvokeMethod.HomeService"); //2.GetMethod(需要調用的方法名稱) MethodInfo method = type.GetMethod("SayHello", new Type[] { typeof(string) }); // 3.調用的實例化方法(非靜態(tài)方法)需要創(chuàng)建類型的一個實例 object obj = Activator.CreateInstance(type); //4.方法需要傳入的參數 object[] parameters = new object[] { "李天"}; // 5.調用方法,如果調用的是一個靜態(tài)方法,就不需要第3步(創(chuàng)建類型的實例) // 相應地調用靜態(tài)方法時,Invoke的第一個參數為null string result = (string)method.Invoke(obj, parameters); //輸出調用信息 string strs = GetInvokeInfo("SayHello(string name)", result); return strs; }
相關文章
C#中數組、ArrayList、List、Dictionary的用法與區(qū)別淺析(存取數據)
在工作中經常遇到C#數組、ArrayList、List、Dictionary存取數據,但是該選擇哪種類型進行存儲數據呢?很迷茫,今天小編抽空給大家整理下這方面的內容,需要的朋友參考下吧2017-02-02c#使用ManagedWifi查看當前Wifi信號并選擇wifi的示例
這篇文章主要介紹了c#使用ManagedWifi查看當前Wifi信號并選擇wifi的示例,需要的朋友可以參考下2014-04-04