這是我第一次使用Reflection.Emit。我正在爲提供的對象動態構建代理。代理將通過任何public屬性訪問到提供的對象。我收到的錯誤是:使用Reflection從另一個對象獲取屬性值。發送
上的屬性訪問對象「ProxyObject」「AccessorName」發生以下異常: 嘗試通過方法「ProxyObject.get_AccessorName()」來訪問方法 「NS.CoreObject.get_AccessorName ()失敗。
從我可以假設和收集,這將是由於自動生成屬性getter方法是私人和隱藏的。但是我如何使用MethodBuilder
解決這個問題?
根據崗位在Create DynamicMethod to assign value to a property?,您可以通過聲明被「關聯」與目標模塊的方法DynamicMethod的做到這一點,但我需要建立一個完整的類。是否有可以通過Reflection.Emit實現的等效「關聯」?
這是我正在嘗試執行的一項基本操作,所以我確信這是直截了當的,簡單的,我不知道。
That's MethodAccessException。這聽起來像是該財產事實上並不公開。首先在C#中完成這項工作,從中得到的IL對於你的排放代碼也會非常有幫助。 –
當然,當你的課堂不公開時,公共財產並不意味着什麼。在我的腦海中,這個類型被定義在同一個模塊中。又一個*「我在這個上浪費了幾個小時?」*時刻。 – redman