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",