对于一个对象,我可以使用反射或其他方式获得它的所有子类吗?

对于一个对象,我可以使用反射获得它的所有子类吗

可以加载程序集中的所有类型,然后枚举它们以查看哪些类型实现了对象的类型。您说的是“object”,所以下面的代码示例不适用于接口。此外,此代码示例仅搜索与中声明的对象相同的程序集

A类
{}
...
typeof(A).Assembly.GetTypes()。其中(type=>type.IsSubclassOf(typeof(A));

或者按照注释中的建议,使用此代码示例搜索所有加载的程序集

var子类=
来自AppDomain.CurrentDomain.GetAssemblys()中的程序集
来自程序集中的类型。GetTypes()
其中类型IsubClassof(类型(A))
选择类型

这两个代码示例都要求您使用System.Linq添加

发表评论