Seth77
Messages postés572Date d'inscriptionmardi 30 avril 2002StatutMembreDernière intervention 4 mai 2020
-
16 févr. 2007 à 10:28
Seth77
Messages postés572Date d'inscriptionmardi 30 avril 2002StatutMembreDerniè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 ....
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 16 févr. 2007 à 10:37
Salut,
as-tu essayé en faisant :
foreach(FieldInfo aFieldInfo in LaClasse.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance))
{
if(aFieldInfo.FieldType.GetType().IsSubclassOf(Type.GetType(typeof(myApp.myClass2))))
{
int i = 3;
}
}
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 16 févr. 2007 à 10:37
ooops... sorry :
foreach(FieldInfo aFieldInfo in LaClasse.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance))
{
if(aFieldInfo.FieldType.GetType().IsSubclassOf(typeof(myApp.myClass2)))
{
int i = 3;
}
}
Seth77
Messages postés572Date d'inscriptionmardi 30 avril 2002StatutMembreDernière intervention 4 mai 20201 19 févr. 2007 à 17:07
J'arrive enfin a recuperer ce que je vx ... mais je n'arrive pas a recuperer mon objet ... cad j'ai mon objet de type ABC et j'aimerais bien le recuperer dans un objet de type ABC ..
j'ai regarder dans la MSDN et je fais pareil ... toujours NULL dans mon
objet, ou alors une Exception a cause de qqchose de static !
comment faire ?
Herve
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Warny
Messages postés473Date d'inscriptionmercredi 7 août 2002StatutMembreDernière intervention10 juin 2015 19 févr. 2007 à 17:44
Salut,
J'ai eu un problème similaire au tient.
Si ton objet est dans une assembly externe, quand tu charges ton assembly essaye ça :
Assembly assembly = Assembly.Load(AssemblyName.GetAssemblyName(Path));
Console.Out.WriteLine("Warny")
Il y a 10 types de personnes
Ceux qui comptent en binaire... et les autres
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 24 févr. 2007 à 11:21
salut,
si tu veux instancier un objet à partir d'un assembly chargé dynamiquement :
Assembly assembly = Assembly.Load(AssemblyName.GetAssemblyName(Path));
object o = assembly.CreateInstance("espace_de_nom.Classe");
normalement, ca renvoie soit une instance, soit une exception...qui peut venir par exemple d'une ouverture d'un fichier introuvable (à cause d'un mauvais dossier courant...)...dans ce cas, regarde l'exception dans InnerException de l'exception lancée...
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 24 févr. 2007 à 14:30
Non, un assembly c'est le fichier contenant le code IL issu de la (semi)compilation, le manifest, les ressources, etc etc
Il y en a en gros 2 sortes : processus (exe) et bibliotheque (dll)
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 24 févr. 2007 à 15:07
Ha oui mais là ça ne marchera jamais ton test :
if(aFieldInfo.FieldType.GetType().IsSubclassOf(Type.GetType("myApp.myClass2")))
Pourquoi cet appel ?
Tu veux tester le type du champs, pas le type de la proriété donnant le type du champs
Exemple, si le champs est de type "String" :
aFieldInfo.FieldType donnera une instance de Type décrivant System.String aFieldInfo.FieldType.GetType() donnera une instance de Type décrivant System.RuntimeType
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 24 févr. 2007 à 16:57
A moins que this représente ici l'instance de la classe contenant le champ (ce qui m'étonnerais car dans ce cas tu aurais directement accès au champ privé...), ton code est faux.
FieldInfo.GetValue, méthode En cas de substitution dans une classe dérivée, retourne la valeur d'un champ pris en charge par un objet donné.
[...]
Paramètres
obj
Objet dont la valeur de champ sera retournée.