Bonjour,
Je voudrais savoir comment, avec la reflexion appeler un constructeur mais avec paramètre. Je pensais dc appeler avec MethodBase.Invoke mais VS ne me propose pas dans sa liste de méthode Invoke alors que c'est bien marqué sur MSDN.
Merci.
Bonjour,
Je voudrais savoir comment, avec la reflexion appeler un constructeur mais avec paramètre. Je pensais dc appeler avec MethodBase.Invoke mais VS ne me propose pas dans sa liste de méthode Invoke alors que c'est bien marqué sur MSDN.
Merci.
Via Activator.CreateInstance.
par exemple,
Le second argument est un tableau des paramètres à passer au contrusteur. La classe Activator va recherche celui qui correspond le mieux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DictionaryEntry entry = (DictionaryEntry)Activator.CreateInstance(typeof(DictionaryEntry), new object[] { "clé", "valeur" });
Désolé, j'ai testé à chaque fois on me renvoie null.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Object o = GetInstance(System.Reflection.Assembly.GetExecutingAssembly(), this.ClassName); //L'objet o renvoie null public static object GetInstance(System.Reflection.Assembly a, string className) { try { Type t = a.GetType(className); return Activator.CreateInstance(t, new object[] { "DataSet" }); } catch (ArgumentNullException) { return null; } // Type non trouvé }
Vu ton code, le problème doit venir de la façon dont tu récupère le type. es tu sûr que t est non null avec de l'envoyer à Activator ?
C'est bon problème résolu en fait il fallait juste virer les guillemets à "DataSet".
Partager