Re[4]: Делегаты в MSIL
От: AndrewStrelkov  
Дата: 20.02.09 16:13
Оценка:
Здравствуйте, 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>У конструктора два параметра. Поэтому надо передавать массив из двух типов (а не из нуля или одного).


Разными способами уже старался. Но все равно выбрасывается исключение.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.