簡體   English   中英

使用Reflection調用帶參考參數的方法

[英]Call a method with reference params with Reflection

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

GetMethod將為您提供方法元數據(MethodInfo),可用於探索方法並采取適當的操作。 例如,如果方法不存在或找不到,則將MethodInfo設置為null,並且可以在方法上調用InvokeMemeber之前處理此方法。

顧名思義,InvokeMember將只調用參數中指定的方法。 如果找不到方法,它將拋出“MissingMethodException”,因此您將丟失GetMethod提供的驗證位。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM