如何查找作为基类直接后代的类型?

我需要获得所有类型的程序集inheritance一些基类但只有第一个后代。 例如,如果我有:

class Base { } class FirstClass : Base { } class SecondClass : FirstClass { } 

现在

 var directOnes = assembly.GetTypes().Where(t => t.IsSubclassOf(typeof(Base))); 

应该只返回FirstClass而不是SecondClass 。 有办法找出来吗?

您可以使用Type.BaseType代替IsSubclassOf()

例如

 var directOnes = assembly.GetTypes().Where(t => t.BaseType == (typeof(Base))); 

(仅供参考:我认为没有办法找到类型直接实现的接口 。)