如何使用reflection获取当前项目中的所有类?

如何使用reflection列出当前项目(程序集?)中的所有类? 谢谢。

给定System.Reflection.Assembly的实例a ,您可以使用以下命令获取程序集中的所有类型:

 var allTypes = a.GetTypes(); 

这将为您提供所有类型,公共,内部和私人。

如果您只想要公共类型,您可以使用:

 var publicTypes = a.GetExportedTypes(); 

如果从Assembly本身运行此代码,则可以使用该程序集

 var a = Assembly.GetExecutingAssembly(); 

GetTypes和GetExportedTypes将为您提供所有类型(结构,类,枚举,接口等),因此如果您只想要类,则必须过滤

 var classes = a.GetExportedTypes().Where(t => t.IsClass); 

看看Assembly.GetTypes方法。

是的,您使用Assembly.GetTypes方法。