溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#高效反射調用方法類的示例分析

發布時間:2021-06-24 14:23:15 來源:億速云 閱讀:208 作者:小新 欄目:編程語言

小編給大家分享一下C#高效反射調用方法類的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

C#高效反射調用方法類

1.創建一個業務類(HomeService),在類下創建3個方法

C#高效反射調用方法類的示例分析

C#高效反射調用方法類的示例分析

2.正常方式調用類的方法

C#高效反射調用方法類的示例分析

3.反射方式調用類的方法

C#高效反射調用方法類的示例分析

4.調用代碼

C#高效反射調用方法類的示例分析

5.調用結果

C#高效反射調用方法類的示例分析

6.Service類方法代碼

C#高效反射調用方法類的示例分析

C#高效反射調用方法類的示例分析

內容擴展:

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.調用的實例化方法(非靜態方法)需要創建類型的一個實例
      object obj = Activator.CreateInstance(type);
      //4.方法需要傳入的參數
      object[] parameters = new object[] { "李天"};
      // 5.調用方法,如果調用的是一個靜態方法,就不需要第3步(創建類型的實例)
      // 相應地調用靜態方法時,Invoke的第一個參數為null
      string result = (string)method.Invoke(obj, parameters);

      //輸出調用信息
      string strs = GetInvokeInfo("SayHello(string name)", result);
      return strs;
    }

以上是“C#高效反射調用方法類的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女