每次更改时是否需要更新服务引用?

时间:2012-10-22 20:01:21

标签: wcf

我构建了一个简单的客户端 - 服务器应用程序。当我对服务器进行更改时,我会删除服务引用并重新创建它以反映我对服务器应用程序所做的更改。

每次更改服务器应用程序时,是否必须重新创建它,或者是否有任何方法可以自动更新服务引用?

由于

3 个答案:

答案 0 :(得分:2)

基本答案可能是:是的。

WCF和分布式应用程序的优点在于客户端和服务器可以单独发展。更新客户端以利用更新版本的服务应该是有意识的选择。

当然,在开发过程中,这可能是一种痛苦。有几种方法可以缓解这个问题,这里有一些我能想到的:

  • Use Visual Studio to manage your service reference。如果您已更新服务,只需右键单击并选择“更新服务参考”,这不会花费太多精力。
  • 使用测试驱动的方法来创建服务。这使您可以专注于完成服务中的业务逻辑,而无需客户端访问它。一旦你有“绿灯”,你就可以创建客户端了。此方法可最大限度地减少您更新客户端所需的次数。
  • 自动使用svcutil在您需要/想要的时候创建新的客户端代码。

肯定会有更多(甚至可能更好)的方法,但这些方法可能对您有帮助。

答案 1 :(得分:2)

取决于,

如果你所做的只是在不改变现有功能的情况下添加功能,而客户端不需要新功能,那么答案就是否。

这是' IsRequired'背后的理念。 DataMember属性属性。如果您向数据协定添加新的数字,但将其标记为IsRequired = false,则现有系统仍然可以使用旧协议与服务器连接。

显然,添加新方法也不会破坏旧合同,客户也不会知道新方法。

答案 2 :(得分:1)

目前我在项目中面临同样的问题。

当我添加一些方法或更改服务中数据成员的属性时,我必须更新服务引用,否则我的客户端无法使用更新的东西。

基本上,如果你在服务中添加任何方法并且你没有更新服务引用那么它的代码就不会崩溃,它会像以前一样工作,但是如果你改变了一个属性(数据成员),你就会被绑定更新服务引用,否则您的代码将中断。

相关问题