【发布时间】:2010-02-23 14:42:38
【问题描述】:
如何使用反射列出当前项目(程序集?)中的所有类?谢谢。
【问题讨论】:
如何使用反射列出当前项目(程序集?)中的所有类?谢谢。
【问题讨论】:
给定一个 System.Reflection.Assembly 的实例 a,您可以使用以下方法获取程序集中的所有类型:
var allTypes = a.GetTypes();
这将为您提供所有类型,公共的、内部的和私有的。
如果你只想要公共类型,你可以使用:
var publicTypes = a.GetExportedTypes();
如果您从程序集本身运行此代码,则可以使用获取程序集
var a = Assembly.GetExecutingAssembly();
GetTypes 和 GetExportedTypes 将为您提供所有类型(结构、类、枚举、接口等),因此如果您只需要类,则必须进行过滤
var classes = a.GetExportedTypes().Where(t => t.IsClass);
【讨论】:
看看Assembly.GetTypes 方法。
【讨论】:
是的,您使用Assembly.GetTypes 方法。
【讨论】: