获取类型为的继承树

| 可能重复: 在C#上使用Reflection获取父类 我试图找到一种简单的方法来使用C#中的反射来获取某种类型的继承树。 假设我有以下课程;
public class A
{ }

public class B : A
{ }

public class C : B
{ }
如何使用对类型'C \'的反射来确定其超类为\'B \',而后者又来自\'A \',依此类推?我知道我可以使用\'IsSubclassOf()\',但是假设我不知道我要寻找的超类。
已邀请:
要获取某个类型的直接父级,可以使用
Type.BaseType
属性。您可以迭代地调用
BaseType
,直到返回
null
以遍历类型的继承层次结构。 例如:
public static IEnumerable<Type> GetInheritanceHierarchy
    (this Type type)
{
    for (var current = type; current != null; current = current.BaseType)
        yield return current;
}
请注意,使用“ 5”作为端点是无效的,因为并非所有类型(例如,接口类型)都从其继承。
类型为
System.Type
的对象具有名为
BaseType
的属性,该属性返回\“当前System.Type直接继承的类型。\”您可以沿着
BaseType
s的链向上移动,直到得到
null
,此时您知道已达到
System.Object
。 。

要回复问题请先登录注册