在C#中可以从基类获取子类的类型吗?从基类获取子类
Q
从基类获取子类
17
A
回答
23
不是直接的,但是您可以使用获取当前加载的所有程序集,然后使用Assembly.GetTypes()获取该程序集中的所有类型。然后使用Type.IsSubclassOf()来确定它是否是您之后类型的子类。
4
您可以选择您要检查,获得与方法Assembly.GetTypes()
并测试他们每个人的类型,大会如果是带Type.IsSubclassOf()
看到Assembly members一个子类,Type members
19
你可以这样做:
var subclassTypes = Assembly
.GetAssembly(typeof(BaseClass))
.GetTypes()
.Where(t => t.IsSubclassOf(typeof(BaseClass)));
3
试试这个代码:
public static IEnumerable<Type> GetAllSubclassOf(Type parent)
{
foreach (var a in AppDomain.CurrentDomain.GetAssemblies())
foreach (var t in a.GetTypes())
if (t.IsSubclassOf(parent)) yield return t;
}
相关问题
- 1. 从基类获取子类属性
- 2. 从子/子/继承类获取基类/父级/超级类
- 3. 获取基类的当前子类
- 4. 在django中从抽象基类中获取子类型
- 5. 从子类Java获取值
- 6. 从父类获取子类名称
- 7. 从子类获取父类的字段
- 8. 从类别id获取子类别Magento
- 9. wxPython子类从类中获取属性
- 10. Google App Engine基础和子类获取
- 11. 获取子类
- 12. 获取子类
- 13. 获取子类类型
- 14. 从静态方法获取类类型(在基类上)
- 15. 如何从System.Web.UI.Control(基类)获取值?
- 16. 获取子类名?
- 17. 获取一个基类的子类的实例
- 18. 如何从子类中访问基类?
- 19. 从基类访问子类变量
- 20. C++:从基类实例构造子类?
- 21. 从Python中的基类导入子类
- 22. 从基类构造子类struct
- 23. 从基类中访问一个不返回值的子类的获取方法
- 24. 如何从Delphi中的子类获取指向基类中方法的指针?
- 25. 从基类__init__的子类__init__调用基类方法?
- 26. 基于jQuery类获取前类数
- 27. 获取模板基类的类型
- 28. 如何从基类中获得子类的`Type`
- 29. Pykka:获取Actor的基类
- 30. LINQ - 获取基于类型
谢谢。有用。 – Polaris 2010-04-30 08:16:32
有没有办法只得到用户程序集(而不是系统程序集)?如果有一个选项可以获得这个程序集和所有引用(这个)程序集,这将是一个很好的解决方案。 – Shimmy 2012-01-13 08:15:20
找到它:http://msdn.microsoft.com/en-us/library/system.reflection.assembly.getreferencedassemblies.aspx – Shimmy 2012-01-13 08:16:03