【发布时间】:2012-04-03 16:49:05
【问题描述】:
我有新问题。我的代码:
.method public static void Main() cil managed
{
.entrypoint
// Code size 3 (0x3)
.maxstack 1
IL_0000: ldnull
IL_0001: stloc.0
IL_0002: ret
} // end of method Program::Main
C#代码:
il.Emit(OpCodes.Ldnull);
il.Emit(OpCodes.Stloc_0);
il.Emit(OpCodes.Ret);
我正在通过 System.Reflection 和 System.Reflection.Emit 类生成此代码。有人知道为什么这行不通吗?请帮忙。
一个小问题——我应该生成构造函数吗?
【问题讨论】:
-
只需使用 il.DeclareLocal(...);
-
Protip:编写IL时,总是在汇编后使用PEVerify。它会立即告诉你这个错误。
标签: c# exception .net-assembly reflection.emit il