2010-11-05 77 views
7

我有一个客户端/服务器系统,其中服务器上错误命名的服务调用之一需要被弃用,并用新的更好的命名调用替换。有没有一些标准的过程来反对旧的服务调用,例如记录它的使用情况或返回一个错误异常或什么?废弃WCF服务调用的标准做法是什么?

感谢, 马克

回答

9

你不应该将其重命名。您应该将其标记为已过时并具有以下属性:

[Obsolete("This is a message describing why this method is obsolete")] 

并指示新方法调用的是什么。

通过这样做,任何仍在使用它的客户端将继续运行。

值得注意的是,这个属性会隐藏服务元数据中的属性/方法,所以任何创建或更新对这个服务的引用的客户端/使用者都将完全失去该属性/方法,并被迫不使用它。

+0

我想我不是指重命名。我们创建了一个更好的命名服务电话,并将旧电话留在那里。 – MStodd 2010-11-05 16:32:27

+0

在这种情况下,只需将旧方法标记为过时,并可能将实现更改为指向新代码(如果实际上有一些新代码)。但是不要改变方法签名。 – 2010-11-05 16:40:23

+0

请注意,ObsoleteAttribute不会影响Visual Studio生成的客户端代理类(我想这也适用于由SvcUtil.exe生成的代理类)。 I.E.它不会向您的客户提供该方法已被弃用的任何迹象。 – xr280xr 2015-05-13 20:43:48