成都创新互联网站制作重庆分公司

C#高效反射调用方法类的示例分析-创新互联

小编给大家分享一下C#高效反射调用方法类的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、雅安服务器托管、营销软件、网站建设、漳浦网站维护、网站推广。

C#高效反射调用方法类

1.创建一个业务类(HomeService),在类下创建3个方法

C#高效反射调用方法类的示例分析

C#高效反射调用方法类的示例分析

2.正常方式调用类的方法

C#高效反射调用方法类的示例分析

3.反射方式调用类的方法

C#高效反射调用方法类的示例分析

4.调用代码

C#高效反射调用方法类的示例分析

5.调用结果

C#高效反射调用方法类的示例分析

6.Service类方法代码

C#高效反射调用方法类的示例分析

C#高效反射调用方法类的示例分析

内容扩展:

1、正常方式调用类的方法

/// 
    /// 正常调用类的方法(parm1)
    /// 
    /// 
    public string GetNormalMethod_2()
    {
      HomeService service = new HomeService();     
      //调用有参方法(name)
      string result = service.SayHello("李天");
      //输出调用信息
      string strs = GetInvokeInfo("SayHello(string name)", result);
      return strs;
    }

2、反射方式调用类的方法

/// 
    /// 通过反射调用类的方法(SayHello(string name))
    /// 
    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#高效反射调用方法类的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联成都网站设计公司行业资讯频道!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页标题:C#高效反射调用方法类的示例分析-创新互联
链接地址:http://cxhlcq.com/article/ddiopi.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部