il.EmitCall(OpCodes.Callvirt, getter, null);
与以下代码等效:
il.Emit(OpCodes.Callvirt,getter);
我不确定如何检查动态生成的IL,这是第二个相关的问题。
是的。
Emit(OpCode, MethodInfo)
的源代码(经过验证后)开始于以下部分:
if (opcode.Equals(OpCodes.Call) || opcode.Equals(OpCodes.Callvirt) || opcode.Equals(OpCodes.Newobj))
{
EmitCall(opcode, meth, null);
}