mono.cecil

    0熱度

    1回答

    With Mono.Cecil看起來很簡單,我們只需將目標MethodDefinition的Body設置爲源MethodDefinition的Body即可。對於簡單的方法,這工作正常。但是對於一些使用自定義類型的方法(例如初始化新對象),它不起作用(在編寫程序集時拋出異常)。 這裏是我的代碼: //in current app public class Form1 { public s

    0熱度

    1回答

    這個簡單的代碼工作正常,並允許在每個Update/LateUpdate/FixedUpdate函數週圍添加一個BeginSample/EndSample調用。但是,它不考慮提前退貨指示,例如由於某種情況。你知道如何編寫一個類似的函數來考慮早期返回,以便在任何情況下執行EndSample調用? 請注意,我不是塞西爾專家,我現在只是在學習。在我看來,塞西爾在呼叫InsertBefore和類似功能後自動

    1熱度

    1回答

    出於某種原因,當我嘗試加載一些組裝和分析它,我收到提示Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly... 我真的不關心爲什麼這個異常拋出,我知道哪裏是失蹤部件。 有一種方法來一些類似AppDomain.CurrentDomain.AssemblyResolve事件,但對於Mono.Cecil能做到? 我可以手動

    0熱度

    1回答

    考慮這個層次結構: class StrDict<T> : Dictionary<string, T> class MyDictionary : StrDict<double> 我想使用單聲道塞西爾替換基本類型名稱T類型double。理想情況下,我想直接獲取StrDict`1 <double>,而沒有解決方法。 我想: var baseTypeDef = ((GenericInstanceTy

    0熱度

    1回答

    我想用Mono.Cecil注入一個方法。 我的代碼是這樣的: var worker = method.Body.GetILProcessor(); method.Body.Instructions.Clear();//Clear Old code 我想更換代碼,如: return getCpu(); 所以我寫: List<Instruction> listStep = new List<

    0熱度

    1回答

    我有一個解決方案結構如下: **CoreSolution** | +---- Core.dll (PCL) | +---- CodeInjectionLogic (Inserts IL instruction on each type using Mono.Cecil for PCL) **BuildSolution** | +---- Core.dll (Fo

    0熱度

    1回答

    我寫一個程序,可以改變目標程序的IL記錄方法的進入和退出點。 我使用Mono.Cecil能 我想這個程序插入到目標方法的開始和結束日誌語句。 我嘗試了一個基本程序作爲示例。 public class Target { // My target method. public void Run() { Console.WriteLine("Run metho

    0熱度

    1回答

    我想提取所有傳遞給具有Mono.Cecil的特定方法的參數。 在正在構建的項目後運行的後處理腳本中,我能夠找到所有方法調用,甚至可以提取傳遞給該函數的參數的類型。然而,我無法得到實際的價值......所以這對於Mono.Cecil來說甚至是可能的,如果是的話,我需要看什麼價值? 這裏是我當前的代碼: List<MethodDefinition> methods = new List<MethodD

    0熱度

    1回答

    在return語句引起的問題考慮下面的代碼片段: private string GetFieldValueAsString(string nonAliasedEntityName = null, string nonAliasedName = null) { return nonAliasedEntityName ?? nonAliasedName; // simplified cod

    1熱度

    1回答

    open System open Mono.Cecil open Mono.Cecil.Cil let myHelloWorldApp = AssemblyDefinition.CreateAssembly( new AssemblyNameDefinition("HelloWorld", new Version(1, 0, 0, 0)), "HelloWorld",