Lister toutes les classes d'un namespace [Résolu]

Messages postés
30
Date d'inscription
vendredi 12 janvier 2007
Dernière intervention
17 septembre 2009
- - Dernière réponse : Passepoil75
Messages postés
30
Date d'inscription
vendredi 12 janvier 2007
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
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
30
Date d'inscription
vendredi 12 janvier 2007
Dernière intervention
17 septembre 2009
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de Passepoil75
Messages postés
30
Date d'inscription
vendredi 12 janvier 2007
Dernière intervention
17 septembre 2009
0
Merci
Correction:

For Each ns as Namespace In Noyau.Namespaces 
   For Each cl as Classe In ns.Classes 
   Next 
Next 
Commenter la réponse de Passepoil75
Messages postés
30
Date d'inscription
vendredi 12 janvier 2007
Dernière intervention
17 septembre 2009
0
Merci
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?
Commenter la réponse de Passepoil75

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.