如何更新WCF参考?

时间:2015-08-06 20:57:02

标签: .net visual-studio wcf

在Visual Studio(2013)中,有没有办法更新WCF引用而不用它?

如果我更新引用以引入新类型,它会将某些返回类型更改为非泛型。如果我然后配置服务并选择使用泛型,它会完全更改一些签名方法,这会破坏服务。我必须删除服务引用文件夹中的所有生成的文件,并从存储库中获取原始文件,以便它再次工作。

该服务在WCF测试客户端中正常运行。我可以在结果中看到新类型。我无法在现有项目中更新它。

1 个答案:

答案 0 :(得分:1)

  

...有没有办法更新WCF引用而不会将其搞砸?

不是真的。当您更新服务引用时,最终结果虽然最终是确定性的,但肯定是不可预测的。

为避免这种情况,请不要担心服务引用。只需创建服务契约的二进制引用,并使用WCF通道堆栈来调用服务,如here所述。

如果您有权访问服务二进制文件,则只能执行此操作。

  

如果您不想引用合同,服务引用就有它们的位置   汇编(可能因为它不存在)

我同意服务引用有它们的位置:该位置在公共网站上,或者,如您所指出的,任何其他情况下无法获取服务程序集。

我真的很难想到如果您有权访问服务程序集,最好在二进制引用上使用服务引用。

我想一个原因可能是定义服务和操作/数据合同的类型被捆绑在一个超级组件中,其他一些东西,但在这种情况下,最好的办法是将它们提取到一个单独组装并让服务和消费者都引用它(理想情况下通过NuGet)。