我需要获取所有类型的程序集,这些程序集继承了一些基类但只有第一个后代。例如,如果我有:
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)));
(仅供引用:我认为没有办法找到类型直接实现的接口(interface)。)
关于c# - 如何找到基类的直接后代类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16476073/