Здравствуйте, nikov, Вы писали:
N>Здравствуйте, AndrewStrelkov, Вы писали:
AS>>>>AS>>>>IL_001d: newobj instance void [mscorlib]System.EventHandler::.ctor(object, native int)
AS>>>>
AS>>>>Нужно повторить это в динамической генерации кода. Но так как делегат нельзя создать, просто написав
AS>>>>AS>>>>(OpCodes.Newobj, typeof(EventHandler).GetConstructor(Type.EmptyTypes))
AS>>>>
AS>>Все правильно, в делегат передается указатель на функцию по сигнатуре. Вызов с параметром конструктора Type.EmtyTypes создает делегат без указателя, и это правильно вызывает исключение NullReferenceException. Но такое же исключение возникает при вызове с параметрами (new Type[]{ typeof(IntPtr)}).
N>У конструктора два параметра. Поэтому надо передавать массив из двух типов (а не из нуля или одного).
Разными способами уже старался. Но все равно выбрасывается исключение.