从基类获取Child类

Pol*_*ris 21 c# class

在C#中是否可以从基类中获取子类的类型?

H77*_*H77 31

你可以这样做:

var subclassTypes = Assembly
   .GetAssembly(typeof(BaseClass))
   .GetTypes()
   .Where(t => t.IsSubclassOf(typeof(BaseClass)));
Run Code Online (Sandbox Code Playgroud)


Dea*_*ing 25

但不是直接,您可以使用AppDomain.GetAssemblies()来获取所有当前加载的程序集,然后使用Assembly.GetTypes()来获取该程序集中的所有类型.然后使用Type.IsSubclassOf()来确定它是否是您所追求的类型的子类.

  • 找到它:http://msdn.microsoft.com/en-us/library/system.reflection.assembly.getreferencedassemblies.aspx (2认同)

Pie*_*rOz 5

您可以选择要检查的程序集,使用方法获取类型Assembly.GetTypes()并测试每个类型(如果它是子类)Type.IsSubclassOf()

请参阅程序集成员和类型成员