J'ai trouvé this mais j'ai essayé de l'utiliser et j'ai échoué.Utilisation d'un délégué pour appeler un constructeur
Comment puis-je créer un objet en utilisant des réflexions et le rendre rapide en le mettant dans un délégué?
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[] { });
Avant de le mettre dans un Deleage j'ai essayé au moins invoquer et quand je l'ai fait ci-dessus je reçois l'erreur
An unhandled exception of type 'System.Reflection.TargetInvocationException' occurred in mscorlib.dll
Informations complémentaires: Exception a été levée par la cible d'un appel.
Si j'appelle d() au lieu que je reçois l'exception
An unhandled exception of type 'System.ArgumentException' occurred in mscorlib.dll
Additional information: Type must derive from Delegate.
Comment puis-je mettre un pas de constructeur de délégué dans un param et l'appeler?
Quel problème aviez-vous avec Activator.CreateInstance? – dsolimano
dsolimano: Pour ralentir. Je crée des milliers d'objets et plus encore. –