Я нашел это , но попытался его использовать и потерпел неудачу.
Как я могу создать объект, используя отражения, и сделать его быстрее, поместив его в делегат?
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<T>)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.
Как поместить конструктор без параметров в делегат и вызвать его?