Mono Cecil,方法和指令插入

时间:2016-03-11 19:51:13

标签: c# mono

添加方法并使用说明填充方法时遇到问题。我发现了所需的类型,添加了没有问题的方法,但是当我添加对WriteLine的调用时,它不起作用。

ionic

当我反编译代码时,我得到" //问题:无法反编译该方法。"在方法体中(我使用dotPeek)。在程序集中添加对现有方法的调用非常正常 - 它可见且正确执行。它在运行时不会抛出任何错误。

1 个答案:

答案 0 :(得分:1)

即使您的方法无效,您也应该在方法结束之前插入OpCodes.Ret指令,如下所示:

...
met.Body.Instructions.Insert(0, msg);
met.Body.Instructions.Insert(1,
    Instruction.Create(OpCodes.Call, writeline));
met.Body.Instructions.Add(Instruction.Create(OpCodes.Ret));