Lister toutes les classes d'un namespace

Résolu
Passepoil75 Messages postés 30 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 17 septembre 2009 - 15 sept. 2009 à 15:07
Passepoil75 Messages postés 30 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 17 septembre 2009 - 17 sept. 2009 à 20:10
Bonjour,

J'ai un noyau de programmation [Noyau.dll] où se trouve plusieurs classes dans différents namespaces qui sont réutilisées dans plusieurs programmes.

Je cherche à faire quelque chose du genre :

For Each cl as Classe In Noyau.Classes
Next

OU

For Each ns as Namespace In Noyau.Namespaces
For Each cl as Classe In Noyau.Classes
Next
Next

Ceci dans le but de me créer une méthode 'shared' ClasseTesteur afin de tester chacun des constructeurs, des méthodes et des propriétés de ma classe.


Merci,

Pascal

3 réponses

Passepoil75 Messages postés 30 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 17 septembre 2009
17 sept. 2009 à 20:10
On ait jamais aussi bien servi que par soi-même:

Dim ClassNamespace As String = "Noyau" 
Dim Path As String = "\\...\monDll.dll"
Dim a As Reflection.Assembly = Reflection.Assembly.LoadFrom(Path)
Dim assemblyTypes() As Type = a.GetTypes

For Each mytype As Type In assemblyTypes
    Dim methode As Reflection.MethodInfo = mytype.GetMethod("ClasseTesteur")
    If methode IsNot Nothing Then methode.Invoke(mytype, Nothing)
Next
3
Passepoil75 Messages postés 30 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 17 septembre 2009
15 sept. 2009 à 15:18
Correction:

For Each ns as Namespace In Noyau.Namespaces 
   For Each cl as Classe In ns.Classes 
   Next 
Next 
0
Passepoil75 Messages postés 30 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 17 septembre 2009
17 sept. 2009 à 14:43
J'ai trouvé ma réponse:

Dim ClassNamespace As String = "Noyau" 
Dim Path As String = "\\...\monDll.dll"
Dim a As Reflection.Assembly = Reflection.Assembly.LoadFrom(Path)
Dim assemblyTypes() As Type = a.GetTypes
For Each mytype As Type In assemblyTypes
    Me.CheckedListBox1.Items.Add(mytype.Name)
Next


Par contre, est-ce quelqu'un sait comment appeler une fonction shared de la classe?
0
Rejoignez-nous