Encontré this pero intenté usarlo y fallé.Usando un delegado para llamar a un constructor
¿Cómo puedo crear un objeto utilizando reflexiones y hacerlo rápido al ponerlo en un delegado?
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[] { });
Antes de ponerlo en una Deleage he intentado al menos invocarlo y cuando lo hice anteriormente me sale el error
An unhandled exception of type 'System.Reflection.TargetInvocationException' occurred in mscorlib.dll
Información adicional: Se inició una excepción por el destino de una invocación.
si llamo d() en su lugar me da la excepción
An unhandled exception of type 'System.ArgumentException' occurred in mscorlib.dll
Additional information: Type must derive from Delegate.
¿Cómo pongo un parámetro ningún constructor en un delegado y lo llaman?
¿Qué problema tenías con Activator.CreateInstance? – dsolimano
dsolimano: Para disminuir la velocidad. Estoy creando miles de objetos y más. –