不使用依赖程序集的程序集中的 GetTypes
GetTypes in an assembly without using dependencies assemblies
我有一个 C# 程序集,但我没有它的依赖项程序集。
有没有什么方法可以在没有依赖程序集的情况下获取 .Net 程序集的 GetTypes()。
Assembly SampleAssembly;
SampleAssembly = Assembly.LoadFrom(@"AnyExternal.dll");
var mytypes = SampleAssembly.GetExportedTypes();
我有 AnyExternal.dll 但我没有它的依赖关系。
可以吗
由于您只想发现类型 names,Mono.Cecil 可以帮助您:
var types = AssemblyDefinition
.ReadAssembly("YourAssembly.dll")
.MainModule
.Types
.Where(_ => _.IsPublic);
请注意,Where(_ => _.IsPublic)
并不严格等同于 Assembly.GetExportedTypes
,因为最后一个 returns 嵌套了 public 类型。
要将 Mono.Cecil 添加到您的项目,请执行:
Install-Package Mono.Cecil
来自程序包管理器控制台。
我想这就是我要找的。
http://www.codeproject.com/Articles/3262/A-NET-assembly-viewer
此查看器不使用任何第三方,可以提取程序集信息。
我有一个 C# 程序集,但我没有它的依赖项程序集。
有没有什么方法可以在没有依赖程序集的情况下获取 .Net 程序集的 GetTypes()。
Assembly SampleAssembly;
SampleAssembly = Assembly.LoadFrom(@"AnyExternal.dll");
var mytypes = SampleAssembly.GetExportedTypes();
我有 AnyExternal.dll 但我没有它的依赖关系。
可以吗
由于您只想发现类型 names,Mono.Cecil 可以帮助您:
var types = AssemblyDefinition
.ReadAssembly("YourAssembly.dll")
.MainModule
.Types
.Where(_ => _.IsPublic);
请注意,Where(_ => _.IsPublic)
并不严格等同于 Assembly.GetExportedTypes
,因为最后一个 returns 嵌套了 public 类型。
要将 Mono.Cecil 添加到您的项目,请执行:
Install-Package Mono.Cecil
来自程序包管理器控制台。
我想这就是我要找的。
http://www.codeproject.com/Articles/3262/A-NET-assembly-viewer
此查看器不使用任何第三方,可以提取程序集信息。