C#:列出汇编中的所有类

时间:2009-08-22 09:59:16

标签: c# .net class-structure

我想输出(以编程方式 - C#)我的程序集中所有类的列表。

任何提示或示例代码如何执行此操作?反射?

2 个答案:

答案 0 :(得分:132)

使用Assembly.GetTypes。例如:

Assembly mscorlib = typeof(string).Assembly;
foreach (Type type in mscorlib.GetTypes())
{
    Console.WriteLine(type.FullName);
}

答案 1 :(得分:92)

我只想补充Jon的例子。要获得对自己程序集的引用,可以使用:

Assembly myAssembly = Assembly.GetExecutingAssembly();

System.Reflection命名空间。

如果要检查没有引用的程序集,可以使用以下任一项:

Assembly assembly = Assembly.ReflectionOnlyLoad(fullAssemblyName);
Assembly assembly = Assembly.ReflectionOnlyLoadFrom(fileName);

如果您打算在找到类型后实例化它:

Assembly assembly = Assembly.Load(fullAssemblyName);
Assembly assembly = Assembly.LoadFrom(fileName);

有关详细信息,请参阅Assembly class documentation

获得Assembly对象的引用后,您可以像Jon已经演示的那样使用assembly.GetTypes()