【发布时间】:2015-07-04 12:25:44
【问题描述】:
我正在制作一个工具,用于扫描当前计算机的驱动器以查找我们公司开发的应用程序。如果它遇到我们的服务之一(SVC 文件),它也应该获得该代码的版本。为此,它应该找出哪个 DLL 保存了 SVC 文件后面的代码。
SVC 文件仅包含命名空间和类的名称,而不包含 DLL 的名称。 BIN 文件夹包含多个 DLL,那么它可能是哪一个...?
在这种情况下,我们不能假设程序集与(根)命名空间具有相同的名称,因此这没有任何帮助。
我能想到的唯一方法是在单独的 AppDomain 中打开所有 DLL 并检查所有包含的命名空间 + 类。
有人知道更快的方法吗?
【问题讨论】:
-
包含 .svc 文件中引用的类型的那个。 WCF 还将扫描该命名空间和类型的程序集。
-
@CodeCast:所以......你是说扫描所有程序集是唯一的解决方案?
-
嗯,是的,服务类型可以驻留在任何程序集中。这听起来可能效率低下,但您需要此工具这一事实意味着您没有适当的应用程序生命周期/发布管理,这本身就效率低下。
-
关于生命周期/发布管理,您是绝对正确的。我们公司意识到这一点并正在努力解决它。第一步:了解所有混乱情况;)
-
好。当然没有冒犯的意思。 :)