【发布时间】:2011-08-08 09:55:44
【问题描述】:
调用返回object的函数后,我尝试将堆栈中的值存储在局部变量中,然后将其推回,但失败并出现异常
以调用目标引发异常
代码如下:
.....
MethodInfo checked_static = typeof(NameSpace1.Class1).GetMethod(
"Check", new Type[1] { typeof(object) });
adderIL.Emit(OpCodes.Callvirt, checked_static);
adderIL.Emit(OpCodes.Stloc_3);
adderIL.Emit(OpCodes.Ldloc_3);
adderIL.Emit(OpCodes.Brfalse, TRUE);
.....
如果我删除 Stloc_3 和 Ldloc_3 一切正常,我就迷路了。
【问题讨论】:
-
记录异常的 InnerException。
-
errr,我们必须声明局部变量? Ldloc_3 不会将值上传到函数中每个堆栈中存在的局部变量数组吗?
标签: .net il ilgenerator