Probleme avec la reflexion

Seth77 Messages postés 572 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 4 mai 2020 - 16 févr. 2007 à 10:28
Seth77 Messages postés 572 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 4 mai 2020 - 24 févr. 2007 à 18:53
Salut

Voici mon code

foreach(FieldInfo aFieldInfo in LaClasse.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance))
{
if(aFieldInfo.FieldType.GetType().IsSubclassOf(Type.GetType("myApp.myClass2")))
{
int i = 3;
}
}

J'essaie en recuperant les membre de savoir lequels sont derive de myClass2, pourtant dans la fenetre espion je le vois bien mais aucune fois il ne rentre dans le if ....

thx @+

Herve

28 réponses

Seth77 Messages postés 572 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 4 mai 2020 1
24 févr. 2007 à 17:08
Ben justement c'est ce parametre qui me pose probleme , je ne sais pas quoi y mettre  ...
j'ai essaye egalement  null ...

Herve
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
24 févr. 2007 à 17:14
Ben l'instance de la classe sur laquelle récupérer la valeur, donc "LaClasse" pour reprendre ton exemple :
foreach(FieldInfo aFieldInfo in LaClasse.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance))

/*
coq
MVP Visual C#
CoqBlog
*/
0
Seth77 Messages postés 572 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 4 mai 2020 1
24 févr. 2007 à 17:25
Ben oui.... c'est bien this .....

je fais :

FieldInfo[] myFields = this.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance);

..

maClasse aField = (maClasse)myFields[i].GetValue(this);

Herve
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
24 févr. 2007 à 17:30
Et quelle est l'erreur ?

/*
coq
MVP Visual C#
CoqBlog
*/
0

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

Posez votre question
Seth77 Messages postés 572 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 4 mai 2020 1
24 févr. 2007 à 17:49
J'ai pas d'erreur , sauf que mon objet est a null ...

Herve
0
Seth77 Messages postés 572 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 4 mai 2020 1
24 févr. 2007 à 18:00
Je vais essaye d'expliquer ce que j'essaie de faire :

j'ai une classe A
une classe B derivee de A

dans la classe B il y a des membres...

dans la classe A je veux recuperer les membres de B en fonction de leurs heritage ....

Et c'est dans A que je fais le

FieldInfo[] myFields = this.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance);
..
maClasse aField = (maClasse)myFields[i].GetValue(this);

Herve
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
24 févr. 2007 à 18:18
Je n'aime pas des masses que la classe de base aie conscience de l'existance des classes dérivées...
Si "this" représente une instance de B, alors la seule raison que je vois pour que tu récupères null est que le champ aie justement la valeur null.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Seth77 Messages postés 572 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 4 mai 2020 1
24 févr. 2007 à 18:53
AH !

oui il est bien a null !!

"

Je n'aime pas des masses que la classe de base aie conscience de l'existance des classes dérivées..."
c'est pas bien ?

c'est la classe herite qui appelle la classe qui recupere les membres .... et la classe A est abstraite....

Herve
0
Rejoignez-nous