如何查找作为基类直接后代的类型?
我需要获得所有类型的程序集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)));
(仅供参考:我认为没有办法找到类型直接实现的接口 。)