Réflection et héritage

cs_bigflo93 Messages postés 50 Date d'inscription mardi 21 octobre 2003 Statut Membre Dernière intervention 13 septembre 2008 - 8 févr. 2005 à 11:45
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 8 févr. 2005 à 13:58
Salut a tous :)

Je fais de la reflection. Donc je cherche entre autre à récuperer les variables et leurs valeurs...Mais ue pb se pose quand j'ai une classe qui dérive d'une autre classe. Je n'arrive pas à avoir les champs de la classe "mère"...
Voici mon bout de code:

public class Test : ArrayList
{
    string test = "toto";
}

[STAThread]
static void Main(string[] args)
{
     Test truc = new Test();
     Type montype = truc.GetType();
     FieldInfo[] fields = montype.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static);
}



Donc dans la variable fields, j'ai tout les champs sauf ceux de la class dont "truc" herite...
En gros, j'ai le champ "test" mais pas les champs de la classe ArrayList...

Comment faire ?
Merci de votre aide

5 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
8 févr. 2005 à 11:52
Tu peux nous le refaire avec les sauts de ligne stp
Si tu utilises Netscape essaie plutot avec Mozilla, FireFox ou IE.

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
cs_bigflo93 Messages postés 50 Date d'inscription mardi 21 octobre 2003 Statut Membre Dernière intervention 13 septembre 2008
8 févr. 2005 à 12:19
oula en effet, j'avais pas vu ... désolé. Je recommence

Je recherche à utilisé la réflection. Je cherche entre autre à
récuperer les variables et leurs valeurs. C'est pour faire une sorte de
sérialization customizable en xml.

Le pb est que je n'arrive pas à avoir les variables de la classe "mère".

Voici un exemple.




public class ClassMere

{

    int a = 99;

    string b = "cool";

}

public class Test : ClassMere

{

    string test = "toto";

}



[STAThread]

static void Main(string[] args)

{

    Test truc = new Test();

    Type montype = truc.GetType();

    FieldInfo[] fields = montype.GetFields(BindingFlags.Instance | BindingFlags.Public
| BindingFlags.NonPublic | BindingFlags.Static);

}





En faisant ceci, j'arrive à avoir la variable test de la class Test,
mais pas les variables de la class ClassMere dont hérite la class
Test...

Si je fais hérité d'une classe du FrameWork (genre ArrayList ou autre) le pb reste présent.



Comment faire ?


Merci de votre aide :)
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
8 févr. 2005 à 12:26
a et b étant private, je crois que tu vas devoir faire un GetFields sur la classe mère si tu veux les avoir

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
cs_bigflo93 Messages postés 50 Date d'inscription mardi 21 octobre 2003 Statut Membre Dernière intervention 13 septembre 2008
8 févr. 2005 à 12:30
Ah oui je vois le pb...

Mais justement, comment récupérer la classe mère à partir d'un type donné ? car j'ai pas trouvé...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
8 févr. 2005 à 13:58
En te servant de BaseType.

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
Rejoignez-nous