views:

45

answers:

1
    class Foo { }

    class Foo1 : Foo { }

    class Foo2 : Foo { }

How would I be able to get all the classes that use Foo as a base class? The inherited classes aren't necessary in the same assembly.

+3  A: 

This is not fast, but as long as Foo is a concrete type (not an interface), then it should work. Foo itself is not returned by this code.

AppDomain.CurrentDomain.GetAssemblies().SelectMany(assembly => assembly.GetTypes()).Where(type => type.IsSubclassOf(typeof(Foo)));
280Z28
I don't think there's any faster way to do this.
SLaks