Это il.EmitCall(OpCodes.Callvirt, getter, null);
il.EmitCall(OpCodes.Callvirt, getter, null);
так же, как:
до il.Emit(OpCodes.Callvirt,getter);
il.Emit(OpCodes.Callvirt,getter);
Я не уверен, как проверить IL, который генерируется на лету,так что ... это второй связанный вопрос.
Да.
Источник для Emit(OpCode, MethodInfo) начинается с (после проверки)
Emit(OpCode, MethodInfo)
if (opcode.Equals(OpCodes.Call) || opcode.Equals(OpCodes.Callvirt) || opcode.Equals(OpCodes.Newobj)) { EmitCall(opcode, meth, null); }