17 votes

Comment obtenir toutes les classes héritées d'une classe de base ?

    class Foo { }

    class Foo1 : Foo { }

    class Foo2 : Foo { }

Comment puis-je obtenir toutes les classes qui utilisent Foo comme classe de base ? Les classes héritées ne doivent pas nécessairement se trouver dans le même assemblage.

29voto

280Z28 Points 49515

Ce n'est pas rapide, mais tant que Foo est un type concret (et non une interface), cela devrait fonctionner. Foo lui-même n'est pas renvoyé par ce code.

AppDomain.CurrentDomain.GetAssemblies()
                       .SelectMany(assembly => assembly.GetTypes())
                       .Where(type => type.IsSubclassOf(typeof(Foo)));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X