我需要調用具有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