C# 4.0 列出DLL中的所有类

C# 4.0 列出DLL中的所有类,c#-4.0,reflection,C# 4.0,Reflection,我想列出DLL中的所有类,而不必加载依赖项。我不想执行任何功能,我只想找出(有问题的)给定DLL中的类。可能吗?我尝试过使用assembly.GetTypes()调用,但由于执行DLL的依赖关系,调用失败。是否有其他方法列出所有公共类?您可以使用方法加载程序集,而无需执行它 您还需要附加,因为在仅反射上下文中,依赖项不会自动解析。我建议您使用mono库。这是一个基本的例子: //Creates an AssemblyDefinition from the "MyLibrary.dll" ass

我想列出DLL中的所有类,而不必加载依赖项。我不想执行任何功能,我只想找出(有问题的)给定DLL中的类。可能吗?我尝试过使用assembly.GetTypes()调用,但由于执行DLL的依赖关系,调用失败。是否有其他方法列出所有公共类?

您可以使用方法加载程序集,而无需执行它


您还需要附加,因为在仅反射上下文中,依赖项不会自动解析。

我建议您使用mono库。这是一个基本的例子:

//Creates an AssemblyDefinition from the "MyLibrary.dll" assembly
AssemblyDefinition myLibrary = AssemblyFactory.GetAssembly ("MyLibrary.dll");

//Gets all types which are declared in the Main Module of "MyLibrary.dll"
foreach (TypeDefinition type in myLibrary.MainModule.Types) {
    //Writes the full name of a type
    Console.WriteLine (type.FullName);
}

这不会加载所有依赖项。

好的,我找到了。这种组合可以获得所有类的列表,而不必处理依赖关系:

Assembly=Assembly.LoadFrom(文件名);
Type[]types=assembly.GetTypes()

好的,我找到了。这种组合可以获得所有类的列表,而不必处理依赖项:Assembly Assembly=Assembly.LoadFrom(filename);Type[]types=assembly.GetTypes();