Possible Duplicate:
To get parent class using Reflection on C#
I am trying to find an easy way of getting the inheritance tree of a certain type using reflection in C#.
Let's say that I have the following classes;
public class A
{ }
public class B : A
{ }
public class C : B
{ }
How do I use reflection upon type 'C' to determine that its superclass is 'B', who in turn comes from 'A' and so on? I know that I can use 'IsSubclassOf()', but let's assume that I don't know the superclass that I am looking for.
To get a type's immediate parent, you can use the Type.BaseType
property. You can iteratively call BaseType
until it returns null
to walk up a type's inheritance hierarchy.
For example:
public static IEnumerable<Type> GetInheritanceHierarchy
(this Type type)
{
for (var current = type; current != null; current = current.BaseType)
yield return current;
}
Do note that it isn't valid to use System.Object
as the end-point because not all types (for example, interface types) inherit from it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With