标记WCF合同中已弃用的字段

我有一个与客户端v1一起使用的wcf合同。

现在我正在研究服务v2,我想将某些字段标记为已弃用,因此客户端v1将查看并使用它们,而客户端v2将忽略它们。

这个问题有什么最佳做法吗? 我应该使用WCF中的任何现有属性吗?

谢谢。

在我们这边,我们通常通过命名空间来版本操作。 当一个操作被弃用时,我们只需在描述中放置一个弃用注释,客户端可以通过wsdl看到它。 我们通知我们的客户,让他们知道已弃用的操作以及到期日期。

我同意@Aliostad的观点,即您不应该从服务合同中删除操作,因为它会引入重大更改,因此应该在单个版本的API中避免。

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

您可以查看本文以获取详细参考。