如何利用反射列出当前项目(程序集)中的所有类?谢谢。
如果有一个名为a
的System.Reflection.Assembly实例,您可以使用以下代码获取程序集中的所有类型:
var allTypes = a.GetTypes();
这将给你所有类型,包括公共、内部和私有。
如果你只想要公共类型,可以使用:
var publicTypes = a.GetExportedTypes();
如果您正在汇编程序内运行此代码,则可以使用以下方式获取程序集:
var a = Assembly.GetExecutingAssembly();
GetTypes和GetExportedTypes将为您提供所有类型(结构体,类,枚举,接口等),因此如果您只想要类,您需要进行过滤。
var classes = a.GetExportedTypes().Where(t => t.IsClass);