C#利用反射动态调用类及方法
此方法可以用于未明确类名及方法名,通过对动态获取到存储在变量中的类和方法进行访问
string className = "Class1";//类名称
string strClass = "ConsoleApplication1." + className; //命名空间+类名 注意:类不可以是抽象类,否则无法创建
string strMethod = "test";//方法名
Type type;
object objs;
//通过string类型的strClass获得同名类“type”
type = Type.GetType(strClass);
//创建type类的实例 "objs"
objs = System.Activator.CreateInstance(type);
//加载需要访问的方法,如果有参数的可以设置传参Type[]中是参数的个数和类型,可根据实际调用的方法定义,无参方法GetMethod中只填写类名变量即可
MethodInfo method = type.GetMethod(strMethod, new Type[] { typeof(string), typeof(string) });
//使用指定参数调用由当前实例表示的方法或构造函数。
method.Invoke(objs, new object[] { "参数1", "参数2" });