C#高效反射调用方法类实例详解

时间:2021-05-20

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; }

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章