[英]How to get all inherited classes
Let's imagine that we have a class called A
, and this class is inherited from class B
, and also class B
inherited from class C
.假设我们有一个名为
A
的类,这个类是从B
类继承的, B
类也是从C
类继承的。 We can extend this sequence as long as we want.我们可以根据需要扩展这个序列。 How can we get all classes from this sequence?
我们如何从这个序列中获取所有类? Like:
喜欢:
Try this code:试试这个代码:
Type type = typeof(C);
while (type.BaseType!=null)
{
type = type.BaseType;
Console.WriteLine(type.Name);
}
// C
// B
// A
// Object
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (var assembly in assemblies)
foreach (Type type in assembly.GetTypes())
{
if (typeof(A).IsAssignableFrom(type))
Console.WriteLine(type);
}
// These can be in various projects / assemblies
class A { }
class B : A { }
class C : A { }
class D : B { }
class E { }
class F : E { }
class G : D { }
Prints:印刷:
A
B
C
D
G
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.