在不使用依赖程序集的程序集中获取类型
本文关键字:程序集 程序 集中 获取 取类型 依赖 | 更新日期: 2023-09-27 18:22:36
我有一个C#程序集,但没有它的依赖程序集。
是否有任何方法可以在没有依赖项程序集的情况下获取.Net程序集的GetTypes()。
Assembly SampleAssembly;
SampleAssembly = Assembly.LoadFrom(@"AnyExternal.dll");
var mytypes = SampleAssembly.GetExportedTypes();
我有AnyExternal.dll,但我没有它的依赖项。
有可能吗。
由于您只想发现类型名称,Mono.Cecil可以帮助您:
var types = AssemblyDefinition
.ReadAssembly("YourAssembly.dll")
.MainModule
.Types
.Where(_ => _.IsPublic);
注意,Where(_ => _.IsPublic)
不是Assembly.GetExportedTypes
的严格等价物,因为最后一个也返回嵌套的公共类型。
要将Mono.Cecil添加到您的项目中,请执行:
Install-Package Mono.Cecil
从Package Manager控制台。
我想这就是我想要的。
http://www.codeproject.com/Articles/3262/A-NET-assembly-viewer
此查看器不使用任何第三方,可以提取程序集信息。