可能的重复项:
C#:列出程序集中的所有类
如何使用反射获取特定项目中的所有类名?
编辑 1(
是否可以区分程序员定义的类和内置类?
Type[] types = Assembly.GetExecutingAssembly().GetTypes()
获取包含此代码行的程序中的所有类型;Type
类具有 Name
属性。
前面的两张海报是正确的。但是,如果需要所有引用程序集及其类型的列表,则可以执行以下操作:
var referencedAssemblies = Assembly.GetExecutingAssembly().GetReferencedAssemblies();
var referencedTypes = referencedAssemblies.SelectMany(x => Assembly.Load(x.FullName).GetTypes());
这将给出来自核心库、第三方等引用和使用的所有类型的列表,如果您不使用程序集但引用了它,它不会列出其类型。
它不是很有用,因为它列出了来自System和System.Core等的数千种类型,但我不完全确定您要实现的目标,因此这可能是一个开始。
使用Assembly.GetTypes
方法