C# 通过反射执行已存在于类中的方法 通过字符串执行方法

Posted dreamhero

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 通过反射执行已存在于类中的方法 通过字符串执行方法相关的知识,希望对你有一定的参考价值。

通过字符串执行方法,在可能会调用不同方法时对不同方法进行调用

以下为实例:

 1 public class ABC
 2 
 3     string str = "通过反射执行的方法";
 4     //Class:要反射的Method所在类名
 5     Type type = typeof(Class);
 6     //funcName:进行反射的方法名称,第二个参数指定方法的搜索范围,当前为搜索private的方法,没有第二个参数则为public的方法
 7     MethodInfo mt = type.GetMethod("funcName",BindingFlags.NonPublic | BindingFlags.Instance);
 8     object instance = Activator.CreateInstance(t);
 9     //执行到反射成功的方法上
10     mt.Invoke(instance,new object[] paramster );
11     
12     //被反射执行到的方法
13     void funcName(object paramster)
14     
15         //如果想要使用ABC类中的变量则需要在调用Invoke()时第一个参数置为ABC的实例而非instance
16         //实例:this
17         string a = str;
18     
19 
20 
21 public class CBA
22 
23     string str = "通过反射执行的方法";
24     //被反射执行到的方法
25     public void funcName(object paramster)
26     
27         //如果想要使用ABC类中的变量则需要在调用Invoke()时第一个参数置为ABC的实例而非instance
28         //实例:new CBA()
29         string a = str;
30     
31 

文档:Type.note
结合线程使用:  链接:http://note.youdao.com/noteshare?id=baaca71b2653e8eb6a69b4ac67af9bce

以上是关于C# 通过反射执行已存在于类中的方法 通过字符串执行方法的主要内容,如果未能解决你的问题,请参考以下文章

PHP通过反射方法调用执行类中的私有方法

声明“Nullable<string>[]”或“string[]?”对于可能存在或不存在于类中的字符串数组属性?

C#反射执行方法返回List,怎么获取List

C#通过反射获取不同命名空间下的类(属性和方法)

c#的属性和反射,大约是啥回事

反射_获取类的信息