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

Adi*_*be7 8 c# wcf datacontract deprecated

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

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

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

谢谢.

Ali*_*tad 13

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

就WCF版本控制而言,一旦发布了界面,就无法删除任何方法,或者就合同而言,您实际上不应删除任何属性.如果希望新客户端使用它们,您可以发布新接口并创建单独的DTO类.

参考:过时的属性.