考虑以下类层次结构:基类 A、从 A 继承的类 B 和 C,以及从 B 继承的类 D。
public class A {...}
public class B : A {...}
public class C : A {...}
public class D : B {...}
我可以使用以下代码查找 A 的所有子类,包括 D:
var baseType = typeof(A);
var assembly = typeof(A).Assembly;
var types = assembly.GetTypes().Where(t => t.IsSubclassOf(baseType));
但是我只需要找到 A 的直接子类(例如 B 和 C)并排除所有不直接从 A 继承的类(例如 D)。知道怎么做吗?