Я хочу получить экземпляр делегата из глобального динамического метода, когда я делаю последний шаг, вызываю метод CreateDelegate из класса MethodBuilder, он выдает такое исключение, я пытался найти источник кода .net framework длянайти причину, но не смог ли кто-нибудь помочь мне решить эту проблему?
[TestMethod]
public void Test()
{
//THESE CODE COPIES FROM MSDN
AssemblyBuilder assembly = AssemblyBuilder.DefineDynamicAssembly(new AssemblyName("TempAssembly"), AssemblyBuilderAccess.RunAndCollect);
ModuleBuilder module = assembly.DefineDynamicModule("TempModule");
MethodBuilder method = module.DefineGlobalMethod
("MyMethod1", MethodAttributes.Static | MethodAttributes.Public,
null, null);
ILGenerator generator = method.GetILGenerator();
generator.EmitWriteLine("Hello World from global method.");
generator.Emit(OpCodes.Ret);
// Fix up the 'TempModule' module .
module.CreateGlobalFunctions();
//ERROR:
Action action = method.CreateDelegate(typeof(Action), null) as Action;
action();
}