c# - 如何找到基类的直接后代类型?

标签 c# inheritance reflection types descendant

我需要获取所有类型的程序集,这些程序集继承了一些基类但只有第一个后代。例如,如果我有:

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/

相关文章:

c# - form2 关闭并重新显示 form1 后 Form1 不会保持打开状态

c# - WPF 创建全局 WinSCP session

php - Codeigniter 和多重继承

mysql - 使用 JOIN 语句扩展 ActiveRecord 多态关联?

java - 对存储在 var 中的 Java 类调用静态方法

java - 构造时通过反射获取Java中的静态实例名称

c# - 接受 SSL 套接字时性能非常差

c# - 如何填充类中的列表

JPA 继承 : Query fails with unknown column

2.11 中的 Scala 脚本