reflection.emit

    7熱度

    3回答

    我已經使用System.CodeDom.CodeCompileUnit動態地構建了一些類型,希望將它們編譯成內存中的IL代碼,並將該IL代碼注入裝入內存的程序集中 - 不需要將任何此類代碼保存到磁盤。也許我說的計劃是錯誤的。打開其他有關如何將CodeCompileUnit實例移到上述目標的建議。

    12熱度

    2回答

    當使用DynamicMethod的它可以調用方法和訪問字段如果您在DynamicMethod constructor 的restrictedSkipVisibility參數提供「真」,這將是其他方式不可訪問產生IL我寧願發出的動態IL成動態組裝相反,我可以在生成時將生成的IL保存到程序集中。如果我使用這種方法,我必須使用MethodBuilder而不是DynamicMethod。不過,我需要能夠跳

    5熱度

    2回答

    有誰知道如何使用Reflection.Emit明確地實現接口的屬性 ?

    8熱度

    1回答

    我想從動態生成的內部方法調用。 il代碼很簡單:ldarg_0,callvirt,ret。 執行該方法失敗,TypeLoadException說它無法加載定義內部方法的類型。 當我想到它時,這似乎是合乎邏輯的,因爲動態方法主機程序集不是方法聲明類型程序集的朋友。 但是,我期望動態方法仍然能夠工作,就像Delegate.CreateDelegate的工作。畢竟,我設法得到了內部方法的MethodIn

    16熱度

    5回答

    我被告知要使用Reflection.Emit的,而不是PropertyInfo.GetValue /的SetValue,因爲它是這樣更快。 但我並不真正瞭解Reflection.Emit中的內容,以及如何使用它來替換GetValue和SetValue。任何人都可以幫助我嗎?

    23熱度

    1回答

    遵守以下簡單的源代碼: using System; using System.Linq.Expressions; using System.Reflection; using System.Reflection.Emit; namespace A { public static class Program { private const MethodAtt

    3熱度

    3回答

    我需要動態生成一些類型。生成的類型有幾個方法,構造函數,實現了一個接口並定義了靜態構造函數。有沒有可以幫助完成任務的工具? 我知道this插件反射的,但它只是在方法層面有用,而我必須生成一個整體的類型。 有Run#,但它在pre-alpha中,另外,我希望獨立工具可以在脫機模式下工作,以便我可以將reflection.emit指令複製粘貼到生產代碼中。

    5熱度

    2回答

    爲了更好地理解編譯器的工作方式,我正在嘗試編寫我自己的玩具我的玩具語言 - > MSIL編譯器。我得到了解析和lexing工作,我已經構建了表達式樹並使用System.Linq.Expressions表達式樹API,我有一個工作的解釋器。現在我想發出一些真正的MSIL程序集。 問題是,我無法弄清楚如何實際構建這些程序集。 MethodBuilder類只接受原始MSIL方法體,所以我必須得到我的表達

    2熱度

    2回答

    我正在使用Compact Framework上的Linq表達式樹(來自db4o/Mainsoft/Mono端口)。由於System.Reflection.Emit不存在,因此我無法將我的LambdaExpressions編譯爲委託,因爲性能原因我想這樣做。 我想也許我可以將我的表達式樹轉換爲IL,並且基本上提供了這種方式缺少的Emit功能,但後來我意識到我必須在其上運行基於WinCE的ILASM或

    13熱度

    5回答

    我需要使用Reflection.Emit生成一個實現以下接口的類。 public interface IObject { T Get<T>(string propertyName); } 有沒有人有我如何發出以下作爲簡單測試用例的例子? class GeneratedObject : IObject { public T Get<T>(string propertyN