mono.cecil

    5熱度

    4回答

    我想分析.Net程序集與C#,VB.NET或其他語言無關。 我知道Roslyn和NRefactory,但他們似乎只能在C#源代碼級別上工作? CodePlex上還有一個「Common Compiler Infrastructure: Code Model and AST API」項目,聲稱它「支持以獨立於語言的結構化形式表示代碼塊的分層對象模型」,該聲音完全符合我的需求。 但是,我無法找到任何有用

    0熱度

    1回答

    我正在使用Mono.Cecil添加一個圍繞方法主體的try catch塊,因爲它看起來像exception1的值,所以一切都很順利,即使我可以調用捕獲塊中捕獲的Exception exception1參數的方法。在堆棧頂部。 但是在調用之後,該值從堆棧中移除,如果我想調用其他方法,並以exception1作爲參數,我無法弄清楚在調用之前如何訪問ldloc。 所以下面的代碼工作,我只是不知道如何調用

    0熱度

    1回答

    我想將一個新類導入到一個存在的程序集中。現在我的解決方案是: 先寫這門課程並建立它。 然後檢查ILDASM中的IL代碼。 創建新的TypeDefinition,Method Definition和Instruction然後添加到存在的程序集。 這些會花費我很多時間,因爲我不擅長IL和Mono.cecil。 所以我想這是有一個簡單的方法來導入類型定義到另一個?像 var type = other_a

    2熱度

    1回答

    我一直在努力改變特定場景下TypeDefinition的BaseType。假設我們有下面的程序集。 Assembly1: 類MyAssembly1Class:Test1Class {} Assembly2: 類MyAssembly2Class:Test2Class {} 現在我想改變的基類 「MyAssembly1Class」 中定義將「Assembly1」更改爲assembly2中定義的「MyA

    0熱度

    1回答

    我想從我的部件上卸下ObfuscationExclude屬性: 我嘗試: 但我不知道我可怎麼辦這個,有人可以幫我嗎? public static void CleanCustomAttributes(AssemblyDefinition asmdef) { foreach(ModuleDefinition ModuleDef in asmdef.Modules)

    3熱度

    1回答

    對於一個項目從源混入類型的參數實例構造函數中的目標類型添加混入到使用代碼編織C#,我克隆代碼構造。爲此,我將一個構造函數分成三個概念部分,這就是我要求的幫助。 這裏有三個部分:,基或鏈狀構造函數調用之前運行 字段初始化。 基或鏈狀構造函數調用,包括的參數加載到堆棧。 實際構造函數代碼寫在構造函數體源代碼編譯。 的基本思想是源構造複用到這些作品。複用步驟還涉及檢查局部變量(stloc *和ldloc

    1熱度

    1回答

    將我的編譯器轉換爲使用Mono.Cecil而不是Reflection.Emit後,我從peverify中得到一個錯誤。 Microsoft (R) .NET Framework PE Verifier. Version 4.0.30319.33440 Copyright (c) Microsoft Corporation. All rights reserved. [MD]: Error:

    2熱度

    1回答

    我正在寫一個Fody插件,我能夠注入我的代碼並向用戶提供錯誤消息。我能夠確定指令的順序點,但我找不到找到CustomAttributes順序點的方法。 我需要得到這些信息,以便在錯誤地應用某個屬性的情況下,爲調試器提供一個提示,在那裏可以找到錯誤的位置。 所以基本上我有這樣的事情: [MyAttribute] public void Test() { } 現在我想要得到的MyAttri

    1熱度

    1回答

    我正在開發一個fody插件(使用mono.cecil)並在方法開始時注入一些代碼。我希望調試器跨越注入的代碼。 我在這裏找到了一些信息:http://blogs.msdn.com/b/abhinaba/archive/2005/10/10/479016.aspx 所以我嘗試更新的注入指令行號0xfeefee序列點。 我使用下面的代碼這樣做: public static void Inject(Me

    0熱度

    1回答

    我試圖導入的方法和它的IL代碼像 callvirt instance !!0 [UnityEngine]UnityEngine.GameObject::AddComponent<class RealMono>() 的RealMono是MonoBehavior,我創建的。 我不知道得到通用方法。