考虑以下类的层次结构:基类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)。知道怎么做吗?
相似问题