Bonjour à tous
Je possède dans un string le nom d'une fonction (nom complet), toutes les fonctions sont de types void NomFonction(object sender, EventAgrs e)
Et j'aimerais pouvoir les appeler en fonction de mes besoins (je stocke les noms dans un array) donc dynamiquement.
J'avais testé ceci:
Sauf que mi.Name n'est jamais égal à strParam alors que j'ai vérifié ma fonction s'appelle bien afficher_recherche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public void AppelMethode(string strParam) { // On récupère le Type de la classe elle-même Type oType = this.GetType(); string strMask = ""; // On va récupérer la liste des méthodes qui existent dans la classe 'TestReflection' MethodInfo[] ListMethods = oType.GetMethods(); object objVal = null; // Donc pour chaque méthode : foreach ( MethodInfo mi in ListMethods ) { // Si le nom de la méthode est égale à "Appel_" + strPAram // DialogResult t = MessageBox.Show(mi.Name); if ( mi.Name == strParam ) { // Alors on 'exécute' cette méthode que l'on a trouvée mi.Invoke(null, null); break; } } }
Deuxième problème, il y a plus de 500 fonctions dans mon application, alors avant qu'il les teste toutes.
Connaissant le nom de ma fonction, je ne peux pas directement l'appeler (en vérifiant au préalable qu'elle existe) sans tester toutes les fonctions de la liste.
Merci d'avance, r0seBa
Partager