如何更新WCF引用



在Visual Studio(2013)中,是否有一种方法可以更新WCF引用而不将其炸毁?

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

服务在WCF测试客户端中运行良好。我可以在结果中看到新的类型。我只是无法让它在现有项目中更新

…有没有一种方法可以更新WCF引用而不破坏它?

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

为了避免这种情况,根本不要使用服务引用。只需创建一个对服务契约的二进制引用,并使用WCF通道堆栈来调用服务,如下所述。

只有在您可以访问服务二进制文件时才能这样做。

如果你不想引用契约,服务引用就有它的位置程序集(可能是因为它不存在)

我同意服务引用有它们的位置:那个位置在公共网络上,或者,正如你指出的,在任何其他不可能获得服务集的情况下。

我真的很难想象这样一种情况:如果您可以访问服务集,那么使用服务引用比使用二进制引用更可取。

我猜一个原因可能是定义服务和操作/数据契约的类型与一堆其他东西捆绑在一个超级程序集中,但在这种情况下,最好的做法是将它们提取到一个单独的程序集中,并让服务和消费者都引用它(理想情况下通过NuGet)。

最新更新