type = ass.GetType("ReflectorTest.Test");//根据类型名称,反射出该类型(注意格式是:“命名空间.类名”)
object o =Activator.CreateInstance(type);//创建该类型的对象实例
method=type.GetMethod("sayHello");//反射获取方法(实例方法)
string s = (string)method.Invoke(o,new string[] {"张三"});//调用实例方法
MessageBox.Show("调用实例方法返回:" + s);
通过委托优化:
public delegate int AddMethod(string a); // 委托
type = ass.GetType("ReflectorTest.Test");//根据类型名称,反射出该类型(注意格式是:“命名空间.类名”)
object o =Activator.CreateInstance(type);//创建该类型的对象实例
method=type.GetMethod("sayHello");//反射获取方法(实例方法)
var newMethod = (AddMethod)Delegate.CreateDelegate(typeof(AddMethod), obj, method);
string s = newMethod(new string[] {"张三"});//调用实例方法
MessageBox.Show("调用实例方法返回:" + s);