C#高效反射调用方法类实例详解
更新时间:2019年07月02日 11:33:47 作者:ITMFB
在本篇文章中小编给大家分享的是关于C#高效反射调用方法类的相关实例内容,有兴趣的朋友们学习下。
C#高效反射调用方法类
1.创建一个业务类(HomeService),在类下创建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.调用的实例化方法(非静态方法)需要创建类型的一个实例
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#中的Task.WaitAll和Task.WaitAny方法介绍
这篇文章介绍了C#中的Task.WaitAll和Task.WaitAny方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-04-04
C#将PDF转为多种图像文件格式的方法(Png/Bmp/Emf/Tiff)
这里介绍将PDF转换多种不同格式的图像文件格式,如PNG,BMP,EMF,TIFF等,同时,转换文档也分为转换全部文档和转换部分文档为图片两种情况,本文也将作进一步介绍2018-02-02
c#中winform根据邮箱地址和密码一键发送email的实现
本文主要介绍了c#winform根据邮箱地址和密码一键发送email的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-07-07


最新评论