Réflection et héritage

Signaler
Messages postés
50
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
13 septembre 2008
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
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
A voir également:

5 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
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#
Messages postés
50
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
13 septembre 2008

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 :)
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
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#
Messages postés
50
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
13 septembre 2008

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é...
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
En te servant de BaseType.

Cocoricoooooooo !!!!
coq
MVP Visual C#