考虑下面的类层次结构:基类A,类B和C从A继承和类d从B.继承
public class A {...}
public class B : A {...}
public class C : A {...}
public class D : B {...}
我可以使用下面的代码来找到一个包括d的子类:
var baseType = typeof(A);
var assembly = typeof(A).Assembly;
var types = assembly.GetTypes().Where(t => t.IsSubclassOf(baseType));
但我需要找到只A(例如,在B和C)直接子类和排除不直接从继承(如d)所有类。 任何想法如何做到这一点?