Mécanisme de réflexion [Résolu]

Signaler
Messages postés
13
Date d'inscription
vendredi 2 juin 2006
Statut
Membre
Dernière intervention
13 novembre 2008
-
Messages postés
13
Date d'inscription
vendredi 2 juin 2006
Statut
Membre
Dernière intervention
13 novembre 2008
-
Bonjour ,
je suis débutant en C# , j'ai un gros soucis au niveau des réflexions.
En fait je dois afficher des méthodes et les paramétres des méthodes que génére les différents interfaces de deux Dll.
j'ai pu les afficher , pour les afficher j'ai conservé les interfaces dont j'avais besoin dans une
array List en faisant ceci :

for( i=0 ; i < this.listResulat.Count; i++)// Parcourir l'ArrayList et Afficher le contenu;
   {
    Resultat res = (Resultat)this.listResulat[i]; //Caster la variable
    this.listBox1.Items.Add(res);//Afficher dans la ListBox;
    
   }
Resultat c'est une class qui me permet  de convertir en string les objets pour pouvoir les afficher.

en suite dans mon événement lié à ma ListBox je fais ce ci pour afficher les méthodes:

Resultat res = (Resultat)this.listBox1.SelectedItem;
   Type resType = res.GetType();
   MethodInfo[] Methods = resType.GetMethods();

   la ce qui apparaît c'est la liste des méthodes qui se trouve dans la classe Résultat , je veux la liste des méthodes  de classe qui se trouve dans mon Arraylist .
je n'arrive pas à l'obtenir
Aidez moi svp merci...

6 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Tu appelles GetType sur un objet de la classe Resultat c'est normal que par la suite tu récupères les MethoInfo du type Resultat. C'est une liste de Type qu'il faudrait.
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Je ne vois pas comment je peux te répondre je connais pas ton code, je ne sais pas comment est créée ta classe Resultat et je sais pas ce qu'elle contient..
Messages postés
13
Date d'inscription
vendredi 2 juin 2006
Statut
Membre
Dernière intervention
13 novembre 2008

Merci c'est exactement ça , c'est cool ça marche merci encore

Le lion ne proclame pas sa tigritude
Messages postés
13
Date d'inscription
vendredi 2 juin 2006
Statut
Membre
Dernière intervention
13 novembre 2008

Comment je fais dont pour obtenir la liste des types .car je suis bloqué c'est pour mon stage svp.

Le lion ne proclame pas sa tigritude
Messages postés
13
Date d'inscription
vendredi 2 juin 2006
Statut
Membre
Dernière intervention
13 novembre 2008

Salut , je t'envois le code de la classe résultat Merci eencore.
using System;



namespace ComposantGuild
{
 /// <summary>
 /// Summary description for Resultat.
 /// </summary>
 public class Resultat
 {
  Type inTer,cclass;



  public int toto;



  public Resultat()
  {
  }
  
  public Resultat(Type inTerfs, Type Cclass )
  {
   this.inTer=inTerfs;
   this.cclass= Cclass;
  }



  public Type GetInterface()
  {
   return this.inTer;
  }



  public Type GetClass()
  {
   return this.cclass;
  }



  public void  SetInterface(Type t)
  {
   this.inTer=t;
  }
  public void  SetClass (Type t)
  {
   this.cclass= t;
  }



  override public  string ToString()
  {
   return( inTer.ToString() + "    "  +  cclass.ToString());
  }





 }
}
 

Le lion ne proclame pas sa tigritude
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Je sais pas si c'est exactement ça que tu veux..

Resultat res = (Resultat)this.listBox1.SelectedItem;
Ty pe resType = res.GetClass(); // ou GetInterface( )
MethodInfo[] Methods = resType.GetMethods();