47 votes

Instancier une classe à partir de son nom textuel

Ne me demandez pas pourquoi, mais je dois faire ce qui suit :

string ClassName = "SomeClassName";  
object o = MagicallyCreateInstance("SomeClassName");

Je voudrais savoir de combien de façons il s'agit et quelle approche utiliser dans quel scénario.

Exemples :

  • Activator.CreateInstance
  • Assembly.GetExecutingAssembly.CreateInstance("")
  • Toute autre suggestion serait la bienvenue.

Cette question n'est pas censée être une discussion ouverte, car je suis sûr qu'il n'y a que tant de moyens d'y parvenir.

21voto

Balazs Tihanyi Points 2530
Activator.CreateInstance(Type.GetType("SomeNamespace.SomeClassName"));

ou

Activator.CreateInstance(null, "SomeNamespace.SomeClassName").Unwrap();

Il y a aussi des surcharges où vous pouvez spécifier des arguments de constructeur.

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