use*_*443 2 .net c# il reflection.emit ilasm
我通过Reflection.Emit生成一个带有静态字段num1,num2等的Type.
现在我不知道如何发出代码,将生成的类型中的静态字段的内容加载到静态方法的评估堆栈中.到目前为止我尝试过的是:
generator.Emit(Opcodes.Ldarg, 0);
generator.Emit(Opcodes.Ldfld, "num1");
Run Code Online (Sandbox Code Playgroud)
但显然这不起作用,因为它试图在'this'上加载一个实例字段,而不提供给静态方法.
我应该使用哪种操作码来访问静态字段?
M.S*_*amm 12
因此,假设您像FieldBuilder num1 = ...以前一样在某处创建了num1 ,您可以通过它将其加载到堆栈中generator.Emit(Opcodes.ldsfld, num1);
| 归档时间: |
|
| 查看次数: |
683 次 |
| 最近记录: |