哪个DLL包含SVC文件后面的代码?

时间:2015-07-04 12:25:45

标签: c# .net wcf dll

我正在制作一个工具,用于扫描当前计算机的驱动器以查找我们公司的应用程序。如果它遇到我们的一个服务(SVC文件),它也应该获得代码的版本。为此,它应该找出哪个DLL保存了SVC文件后面的代码。

SVC文件仅包含命名空间和类的名称,而不包含DLL的名称。 BIN文件夹包含多个DLL,因此它可以是......?

在这种情况下,我们不能假设程序集与(root)名称空间具有相同的名称,因此这不是任何帮助。

我能想到的唯一方法是在单独的AppDomain中打开所有DLL并检查所有包含的命名空间+类。

有人知道更快的方式吗?

1 个答案:

答案 0 :(得分:0)

正如所建议的,该软件现在正在扫描所有可能属于SVC文件的程序集。创建单独的AppDomain以反映每个单独的DLL非常慢。所以我在想:"其他程序如何处理这个问题?",所以我看了ILSpy

ILSpy使用Mono.Cecil来反映程序集。它在二进制级别读取程序集,不会创建单独的AppDamain。它甚至可以返回比正常反射更多的信息。

我下载了这个DLL并在我的应用程序中使用它并且运行正常。