299 votes

Comment passer des paramètres à Activator.CreateInstance <T> ()

Je veux créer une instance d'un type que je spécifie dans une méthode générique que j'ai. Ce type a un certain nombre de constructeurs surchargés. J'aimerais pouvoir passer des arguments aux constructeurs, mais

 Activator.CreateInstance<T>()
 

ne voit pas cela comme une option.

Y a-t-il une autre façon de le faire?

571voto

SLaks Points 391154

Oui.

 (T)Activator.CreateInstance(typeof(T), param1, param2);
 

6voto

thames Points 1086

Comme alternative à Activator.CreateInstance, FastObjectFactory dans l’url lié préformes mieux que Activator (à partir de .NET 4.0 et nettement mieux que .NET 3.5. Aucune des tests/stats faits avec .NET 4.5). Voir StackOverflow pour ses stats, d’informations et le code :

Comment passer ctor args dans Activator.CreateInstance ou utilisation IL ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X