ConstructorBuilder에서 생성 한 ILGenerator가 있는데이를 사용하여 DynamicMethod를 만들고 호출하려고하지만 InvalidOperationException이 발생합니다. 전역 메서드 나 필드를 가져올 수 없습니다. 다른 모듈. 당신이 실제로 실행시 전체, 완전한 어셈블리를 정의하고 있기 때문에MethodBuilder/ConstructorBuilder에서 DynamicMethod를 호출 할 수 있습니까?
var constructorBuilder = typeBuilder.DefineConstructor(...);
var ilGenFromCtor = constructorBuilder.GetILGenerator();
.
.
.
var dynamicMethod = new DynamicMethod("Name", ReturnType, Type.EmptyTypes, true);
var ilGenFromDynamicMethod = dynamicMethod.GetILGenerator();
.
.
var @delegate = dynamicMethod.CreateDelegate();
ilGenFromCtor.Emit(OpCodes.Call, @delegate.Method);
--Or
ilGenFromCtor.Emit(OpCodes.Call, dynamicMethod);
10x
델리게이트를 호출 해 보았습니다 (Invoke() 메소드를 호출했습니다)? – svick