Conversion d'une chaine String en Class [Résolu]

Signaler
Messages postés
156
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
28 décembre 2010
-
Messages postés
156
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
28 décembre 2010
-
Bonjour,

Je poste ce message car je ne trouve pas de solution a mon problème.

J'ai une chaine string : string _sClassName="MyClass"

La classe MyClass existe bien dans mon projet, j'aimerai savoir si il est possible de convertir _sClassName en Class ?

Si vous une réponse ou même une idée qui pourrai m'orienter dans la réponse je suis preneur.

Merci d'avance.

PROTEUS

2 réponses

Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
32
Bonjour,

il faut utiliser la reflexion
je n'ai pas d'environnement de dev pour tester, mais de mémoire:

pour une methode de type
public bool Mamethode (int num, string code){...}
contenu dans une classe MaClasse
contenue dans une DLL MaDll.dll
ça donnerait quelquechose comme ça:

using System.Reflection;
...

// definition du tableau de parametres à passer à la methode
Object[] args = new Object[] { 123, "test" };

//chargment de l'assembly et récuperation de du constructeur de la classe
Type T = Assembly.Load("MaDll").GetType("MaClasse", true);
//création d'une instance par appel du constructeur
object m_Value = Convert.ChangeType(Activator.CreateInstance(T), T);

// appel de la methode avec les parametres sous forme de tableau

 bool ret = (bool)m_Value.GetType().InvokeMember("Mamethode",BindingFlags.ExactBinding|BindingFlags.InvokeMethod | BindingFlags.OptionalParamBinding,null,m_Value,args);


à la casse pret.
Bon courage...

C# is amazing, enjoy it!
Messages postés
156
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
28 décembre 2010

Merci pour ta réponse, Je n'ai pas eu le temps de revenir poster la réponse mais effectivement tu avais raison la solution se trouvais dans le name "Using.Reflection"

PROTEUS