.net 如何编辑指令的操作码?

.net 如何编辑指令的操作码?,.net,cil,il,mono.cecil,.net,Cil,Il,Mono.cecil,我正在.NET中编写一个应用程序来编辑任何方法的指令。我想把ldstr放在操作码中,把字符串放在操作数中。Cecil允许我设置操作数,但问题是操作码是只读属性。有没有办法编辑操作码? 为此,我使用以下代码: 非常感谢 要更改指令代码,可以使用Mono.Cecil.Cil.OpCodesenum mDef.Body.Instructions(i).OpCode = Mono.Cecil.Cil.OpCodes.Ldstr; 如果要插入或发出新指令,可以使用Mono.Cecil.Cil.ILPr

我正在.NET中编写一个应用程序来编辑任何方法的指令。我想把ldstr放在操作码中,把字符串放在操作数中。Cecil允许我设置操作数,但问题是操作码是只读属性。有没有办法编辑操作码? 为此,我使用以下代码:


非常感谢

要更改指令代码,可以使用
Mono.Cecil.Cil.OpCodes
enum

mDef.Body.Instructions(i).OpCode = Mono.Cecil.Cil.OpCodes.Ldstr;
如果要插入或发出新指令,可以使用
Mono.Cecil.Cil.ILProcessor
对象

mDef.Body.GetILProcessor().InsertBefore(targetInstruction, Instruction.Create(OpCodes.Ldstr, "New string"));
mDef.Body.GetILProcessor().InsertBefore(targetInstruction, Instruction.Create(OpCodes.Ldstr, "New string"));