【发布时间】:2014-03-25 17:51:53
【问题描述】:
在 DataContract 类中执行宽松的版本控制时,Best Practices: Data Contract Versioning 指南指出:
不要在版本之间更改任何现有数据成员的 IsRequired 属性。
但随后Data Contract Versioning 指南指出:
将 IsRequired 属性值从 true 更改为 false 不会破坏,但如果任何先前版本的类型没有相关数据成员,则将其从 false 更改为 true 可能会破坏。
第一个指南说永远不应该更改IsRequired,然后第二个指南说从false 更改为true 不会中断。
您如何反映在更高版本的合同中不再需要某个属性?如果我将IsRequired 从true 更改为false,这不会破坏使用早期版本的客户吗?他们将能够省略曾经需要的属性。这种变化是否需要引入新合同?
【问题讨论】:
标签: c# wcf versioning datacontract