程序集中的GetTypes不使用依赖项程序集

时间:2015-11-18 11:18:04

标签: c# .net-assembly

我有一个C#程序集,但我没有它的依赖程序集。

.Net程序集的GetTypes()是否有任何方法可以在没有依赖程序集的情况下使用。

 Assembly SampleAssembly;
 SampleAssembly = Assembly.LoadFrom(@"AnyExternal.dll");
 var mytypes = SampleAssembly.GetExportedTypes();

我有AnyExternal.dll,但我没有它的依赖。

是否可能。

2 个答案:

答案 0 :(得分:3)

由于您只想发现类型名称Mono.Cecil可以帮助您:

var types = AssemblyDefinition
    .ReadAssembly("YourAssembly.dll")
    .MainModule
    .Types
    .Where(_ => _.IsPublic);

注意,Where(_ => _.IsPublic)不是Assembly.GetExportedTypes的严格等价物,因为最后一个也返回嵌套的公共类型。

要将Mono.Cecil添加到项目中,请执行:

Install-Package Mono.Cecil
从包管理器控制台

答案 1 :(得分:0)

我认为这就是我在寻找的东西。

http://www.codeproject.com/Articles/3262/A-NET-assembly-viewer

此查看器不使用任何第三方,可以提取汇编信息。