我需要获得所有类型的程序集,它继承了一些基类,但只有第一个后代。例如,如果我有:
class Base
{
}
class FirstClass : Base
{
}
class SecondClass : FirstClass
{
}
现在
var directOnes = assembly.GetTypes().Where(t => t.IsSubclassOf(typeof(Base)));
应仅返回FirstClass
而不是SecondClass
。有没有办法找出来?
答案 0 :(得分:6)
您可以使用Type.BaseType
IsSubclassOf()
e.g。
var directOnes = assembly.GetTypes().Where(t => t.BaseType == (typeof(Base)));
(仅供参考:我认为没有办法找到类型直接实现的 interfaces 。)