欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#高效反射調(diào)用方法類實例詳解

 更新時間:2019年07月02日 11:33:47   作者:ITMFB  
在本篇文章中小編給大家分享的是關(guān)于C#高效反射調(diào)用方法類的相關(guān)實例內(nèi)容,有興趣的朋友們學習下。

C#高效反射調(diào)用方法類

1.創(chuàng)建一個業(yè)務(wù)類(HomeService),在類下創(chuàng)建3個方法

2.正常方式調(diào)用類的方法

3.反射方式調(diào)用類的方法

4.調(diào)用代碼

5.調(diào)用結(jié)果

6.Service類方法代碼

內(nèi)容擴展:

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

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

相關(guān)文章

最新評論