如何获取基类的所有继承类?

时间:2009-11-03 03:45:47

标签: c# reflection inheritance assemblies

    class Foo { }

    class Foo1 : Foo { }

    class Foo2 : Foo { }

我如何能够将所有使用Foo的类作为基类?继承的类在同一个程序集中不是必需的。

1 个答案:

答案 0 :(得分:16)

这并不快,但只要Foo是具体类型(不是接口),它就应该有效。此代码不会返回Foo本身。

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