Je travaille dans .Net 3.5, en examinant tous les différents constructeurs pour Activator.CreateInstance. Je veux créer une instance d'une classe, appelant un constructeur particulier. Je n'ai pas le type de classe, seulement son nom. J'ai ce qui suit, qui fonctionne, mais finit par appeler le constructeur sans paramètre d'abord, puis celui que je veux. Ce n'est pas un gros problème, mais le constructeur sans paramètre appelle un constructeur de base plutôt occupé, et le constructeur que je veux appeler le fait aussi. En d'autres termes, étant donné un type, appeler CreateInstance avec des paramètres est facile (seulement les deux dernières lignes ci-dessous), mais étant donné seulement un nom de type, y at-il un meilleur moyen?Activator.CreateInstance avec le nom de type comme chaîne et avec les paramètres
ObjectHandle oh = Activator.CreateInstance("MyDllName", "MyNS." + "MyClassName");
object o = oh.Unwrap();
object newObj = Activator.CreateInstance(o.GetType(), new object[] { param1 });
return (IMyDesiredObject)newObject;
Merci!
Merci, Reed - J'ai vu ce gars, mais je ne savais pas quoi faire avec ActivationAttributes et SecurityInfo. Les docs n'ont pas indiqué (comme avec Binder and Culture) qu'ils pourraient être nuls, mais il s'avère qu'ils le peuvent. Travaille pour moi! –