我需要调用具有2个正常参数和第三个参数(参考参数)的反射的void方法。我见过很多关于这个问题的文章,并且都建议使用GetMethod函数而不是InvokeMember。我已经尝试过InvokeMember,它可以工作,有人可以解释我为什么?调用带反射的参考参数的方法
Class1 myreferenceparam = new Class1();
myobject.InvokeMember("MyMethod", BindingFlags.InvokeMethod | BindingFlags.Default, null, myobject, new object[] { myparam1, myparam2, myreferenceparam });
Response.Write(myreferenceparam.myfield);
方法MyMethod编辑Class1的字段myfield。我的代码是否正确或者我是否应该使用GetMethod?
考虑动态。如果您使用的是C#4,则可以将该对象分配给“动态”,并将该方法调用为已知方法。 Ex dynamic d = your-unknown-object; d.MyMethod(参数); – 2010-08-04 09:08:45