Использование делегата для вызова конструктора

я нашелэтот но попытался его использовать и потерпел неудачу.

Как я могу создать объект с помощью отражений и сделать его быстрым, поместив его в делегат?

        DynamicMethod dm = new DynamicMethod("MyCtor", t, new Type[] { });            
        var ctor = t.GetConstructor(new Type[] { });
        ILGenerator ilgen = dm.GetILGenerator();
        ilgen.Emit(OpCodes.Ldarg_0);
        ilgen.Emit(OpCodes.Newobj, ctor);
        ilgen.Emit(OpCodes.Ret);
        var d = (Func)dm.CreateDelegate(t);
        dm.Invoke(null, new object[] { });

Прежде чем положить его в удаление, я попытался по крайней мере вызвать его, и когда я сделал выше, я получаю ошибку

An unhandled exception of type 'System.Reflection.TargetInvocationException' occurred in mscorlib.dll

Дополнительная информация: Исключение было сгенерировано целью вызова.

Если я вызову d () вместо этого, я получу исключение

An unhandled exception of type 'System.ArgumentException' occurred in mscorlib.dll

Additional information: Type must derive from Delegate.

Как поместить конструктор без параметров в делегат и вызвать его?

Ответы на вопрос(4)

Ваш ответ на вопрос