c# 4.0 -列出DLL中的所有类



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

您可以使用程序集。方法来加载程序集而不执行它。

如何:将程序集加载到仅反射上下文

还需要附加AppDomain。

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

//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 = Assembly. loadfrom (filename);Type[] types = assembly.GetTypes();

相关内容

  • 没有找到相关文章

最新更新