114

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

任何提示或示例代码如何做到这一点?反射?

4

2 回答 2

170

使用Assembly.GetTypes. 例如:

Assembly mscorlib = typeof(string).Assembly;
foreach (Type type in mscorlib.GetTypes())
{
    Console.WriteLine(type.FullName);
}
于 2009-08-22T10:01:22.513 回答
108

我想补充一下 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 类文档

一旦你有了对Assembly对象的引用,你就可以assembly.GetTypes()像 Jon 已经演示过的那样使用。

于 2009-08-22T10:11:59.733 回答