您好,登錄后才能下訂單哦!
小編給大家分享一下C#高效反射調(diào)用方法類的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
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> /// 通過反射調(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; }
以上是“C#高效反射調(diào)用方法類的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。