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# 通过反射执行已存在于类中的方法 通过字符串执行方法的主要内容,如果未能解决你的问题,请参考以下文章