首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标记WCF协定中已弃用的字段

标记WCF协定中已弃用的字段
EN

Stack Overflow用户
提问于 2011-03-23 19:57:27
回答 3查看 5.4K关注 0票数 9

我有一个wcf合同,与客户端v1的工作。

现在,我正在处理服务v2,我想将一些字段标记为不推荐使用,这样客户机v1就可以看到并使用它们,而客户机v2就会忽略它们。

对于这个问题,有没有什么最佳实践?WCF中是否有我应该使用的现有属性?

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2011-03-23 20:02:04

您可以将旧属性装饰为[Obsolete],但只有当它们使用DLL引用而不是服务/web引用(WSDL)时,客户端才会看到它们。[Obsolete]装饰不会被传递给使用WSDL生成代理的客户端

在WCF版本控制方面,一旦你发布了一个接口,你就不能删除任何方法,或者在合同方面,你真的不应该删除任何属性。如果您希望新的客户端使用它们,您可以发布一个新接口并创建一个单独的DTO类。

参考:Obsolete Attribute

票数 14
EN

Stack Overflow用户

发布于 2011-03-23 20:15:16

在我们这边,我们通常通过命名空间对操作进行版本控制。当一个操作被弃用时,我们只需在描述中添加一个弃用注释,客户端就可以通过wsdl看到该注释。我们通知我们的客户,并让他们知道被弃用的操作以及它的到期日期。

票数 0
EN

Stack Overflow用户

发布于 2017-01-31 04:21:43

我同意@Aliostad的观点,你一般不应该从服务合同中删除操作,因为它引入了破坏性的更改,因此应该在单一版本的API中避免。

但是,如果您想要通知客户端/消费者一些计划的更改,或者有任何其他需要向操作契约添加特定的“额外”信息,您可以查看IWsdlExportExtension接口,创建一个实现它的自定义属性,并注释特定的操作。

您可以查看this article以获得详细的参考。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5404863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档