Variables dynamiques [Résolu]

Signaler
Messages postés
7
Date d'inscription
samedi 29 juillet 2006
Statut
Membre
Dernière intervention
22 août 2006
-
Messages postés
7
Date d'inscription
samedi 29 juillet 2006
Statut
Membre
Dernière intervention
22 août 2006
-
Bonjour à tous,


Je cherche une solution pour simuler des variables dynamiques en C#. Je crée une appli comportant un menu sous forme de TreeView, les fonctions sont stockées dans une base de données et je cherche la solution pour instancier une appli windows sans en connaître le nom dans le menu, c'est à dire d'avoir une méthode dont le composant seraient issus d'une lecture de BDD et passé en paramètre :  

public void Run_Appli (string Nom_de_appli)
{
     Nom_de_appli =
newNom_de_appli
();
       Nom_de_appli
.Show();
}


Si vous avez des idées, merci de me les soumettre, ça fait 2 semaines que je me casse la tête avec ça !!

 Alain Thébault

2 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
Salut,

Tel que tu le décrit c'est impossible.
Tu vas devoir te tourner vers le mécanisme Reflection.
Commence tes recherches par Activator.CreateInstance, ça devrait te permettre de prendre le bon chemin :-)

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
7
Date d'inscription
samedi 29 juillet 2006
Statut
Membre
Dernière intervention
22 août 2006

Salut Coq,

Je te remercie pour ta réponse, à mon retour de vacances, j'ai cherché dans ce sens et grâce à toi j'ai trouvé !!
J'ai donc créé une méthode pour lancer une fenêtre sans en connaitre textuellement le nom et l'assembly que je récupère sous forme de string dans une base de données.
J'ai donc pu générer mon menu applicatif dynamique...

public
void Run_Process(
string pin_asbl,
string pin_proc){
   System.Runtime.Remoting.ObjectHandle wrk_obje System.Activator.CreateInstance(pin_asbl,pin_asbl + "." + pin_proc);   Form wrk_form (Form) wrk_obje.Unwrap();

   wrk_form.Show();

}
 
Encore merci...

 Alain Thébault