Salut
est il possible de recuperer dynamiquement la liste des classes d'un projet...
par exemple toutes les classes herites d'un classe A ...
thx @+
Salut
est il possible de recuperer dynamiquement la liste des classes d'un projet...
par exemple toutes les classes herites d'un classe A ...
thx @+
Tout ça est possible en c#, et ça s'appel "reflection"
Voir:
http://msdn2.microsoft.com/fr-fr/lib...83(VS.80).aspx
(trouver en peu de temps sur le net...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 using System; using System.Reflection; class TestReflexion { public static void Main() { foreach(Assembly asm in AppDomain.CurrentDomain.GetAssemblies() ) { if (asm.GetName().Name != "mscorlib") { foreach (Type ty in asm.GetTypes() ) { Console.WriteLine("Classe : " + ty); foreach (MethodInfo mi in ty.GetMethods() ) { Console.WriteLine(" Méthode : " + mi); foreach (ParameterInfo pi in mi.GetParameters() ) Console.WriteLine(" Paramètre : " + pi.GetType() ); } } } } } }
Merci
Est ce egalement possible de recuperer les membres d'une classe a partir de la classe ??
variableInstanceDeClasse.GetType().GetMembers()Envoyé par Seth77
te retourne tout (et plus).
Tu as de plus des méthodes spécialisées pour les propriétés, les méthodes, les variables membres (GetProperties, GetMethods, GetFields respectivement).
Chacune de ces méthode possède une signature de base (sans param) qui retourne tout, et une avec un paramètre de Binding permettant de restreindre le retour (Public, static, etc ...).
Attention : il semble y avoir quelques bugs avec ce paramètre (par exemple un GetFields avec le BindingFlags.Public ne fonctionne pas sur les fields statiques, pour une raison que j'ignore).
SluEnvoyé par Bluedeep
voila ce que j'essaye :
Et pourtant je ne recupere avec 1 rien et avec 2 juste i1 ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 class Class1_member { public int i1; private bool b1; private bool b2; public Class1_member() { i1 = 12; b1 = true; b2 = false; this.GetType().GetFields(BindingFlags.NonPublic); (1) this.GetType().GetFields(); (2) } }
Comment faire pour recuperer i1, b1 et b2 ?
![]()
Salut
Est ce que c'est completement faux ou alors personne ne comprends commme moi ?![]()
Partager