Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 哪个DLL包含SVC文件的代码隐藏代码?_C#_.net_Wcf_Dll - Fatal编程技术网

C# 哪个DLL包含SVC文件的代码隐藏代码?

C# 哪个DLL包含SVC文件的代码隐藏代码?,c#,.net,wcf,dll,C#,.net,Wcf,Dll,我正在制作一个工具,扫描当前计算机的驱动器,寻找我们公司的应用程序。如果它遇到我们的服务之一(SVC文件),它还应该获得代码的te版本。要做到这一点,它应该找出哪个DLL保存着SVC文件的代码 SVC文件只包含名称空间和类的名称,而不包含DLL的名称。BIN文件夹包含多个DLL,那么它可能是哪一个 在这种情况下,我们不能假设程序集与(根)命名空间具有相同的名称,因此这没有任何帮助 我能想到的唯一方法是在一个单独的AppDomain中打开所有DLL,并检查所有包含名称空间+类的文件 有人知道更快的

我正在制作一个工具,扫描当前计算机的驱动器,寻找我们公司的应用程序。如果它遇到我们的服务之一(SVC文件),它还应该获得代码的te版本。要做到这一点,它应该找出哪个DLL保存着SVC文件的代码

SVC文件只包含名称空间和类的名称,而不包含DLL的名称。BIN文件夹包含多个DLL,那么它可能是哪一个

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

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


有人知道更快的方法吗?

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

ILSpy用于反映程序集。它在二进制级别读取程序集,并且不创建单独的AppDamain。它甚至返回比正常反射更多的信息


我下载了这个DLL,并在我的应用程序中使用它,效果非常好。

包含.svc文件中提到的类型的DLL。WCF还将扫描该命名空间和类型的程序集。@CodeCast:So。。。您是说扫描所有程序集是唯一的解决方案?是的,服务类型可以驻留在任何程序集中。这听起来可能效率低下,但您需要此工具这一事实意味着您没有适当的应用程序生命周期/发布管理,这本身就是低效的。关于生命周期/发布管理,您是绝对正确的。我们公司意识到这一点,并正在努力解决这一问题。第一步:了解所有混乱情况;)好。当然没有冒犯的意思。:)