InvalidProgramException при создании таймера с использованием делегата, созданного отражением

Этот код:

var returnType = GetDelegateReturnType (typeof (TimerCallback)); var methodParameters = typeof (TimerCallback).GetMethod ("Invoke"). GetParameters (). Select (x => x.ParameterType).ToArray (); var handler = new System.Reflection.Emit.DynamicMethod ("", returnType, methodParameters, typeof (ArgumentNullTest)); var generator = handler.GetILGenerator (); generator.Emit (System.Reflection.Emit.OpCodes.Ldloc, 1); generator.Emit (System.Reflection.Emit.OpCodes.Ret); var timerCallback = (TimerCallback) handler.CreateDelegate (typeof (TimerCallback)); var timer = новый таймер (timerCallback, ноль, 0, 0);
var timer2 = новый таймер (o => { }, ноль, 0, 0);

бросает InvalidProgramException при создании второго таймера. Что я делаю не так при создании TimerCallback за отражение?

0 ответов

Другие вопросы по тегам