Bonjour,
Je cherche à lister tous les types disponibles héritant d'un certain type sachant que ce type n'apparait pas dans la toolbox.
Si vous avez des pistes pour arriver à tel résultat, je suis preneur.
Merci!
Bonjour,
Je cherche à lister tous les types disponibles héritant d'un certain type sachant que ce type n'apparait pas dans la toolbox.
Si vous avez des pistes pour arriver à tel résultat, je suis preneur.
Merci!
J'ai dû faire la même chose pour un projet, c'est en C# mais tu pourras convertir :
Cette méthode recherche dans une assembly, donnée en paramètre, les types héritant d'un type donné en paramètre aussi.
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 /// <summary> /// Gets the subclasses of a given <see cref="Type"/>. /// </summary> /// <param name="asm">The assembly.</param> /// <param name="baseClassType">Type of the base class.</param> /// <returns></returns> private static Type[] GetSubClasses(Assembly asm, Type baseClassType) { List<Type> subClasses = new List<Type>(); foreach (Type type in asm.GetTypes()) { if (type.IsSubclassOf(baseClassType)) { subClasses.Add(type); } } return subClasses.ToArray(); }
Merci Saumon!
J'ai à peu près déjà le même code que toi. Mon problème est de ne pas chercher dans une assembly particulière mais plutôt de rechercher dans toutes les assembly référencée dans le projet (je suis en mode design pas runtime)
Any idea?
Tu peux faire ce traitement sur toutes les assemblies chargées à l'exécution.
Cela correspond à ce que tu recherches ?
Merci Saumon pour tes propositions!
J'ai enfin trouvé la solution élégante à ce problème: il faut passer par le service ITypeDiscoveryService et cela fonctionne parfaitement.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager