如何解决数据合约版本控制
我一直在阅读这篇关于数据契约版本控制的 https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/data-contract-versioning?redirectedfrom=MSDN 文章。
它表示更改数据成员的名称是一个重大更改。
然后它还说,如果将具有新字段的数据合同反序列化为旧数据合同(没有新字段),它将起作用,因为新字段将被忽略。此外,将旧合约反序列化为新合约也适用于分配了默认值的新字段(假设新字段没有 IsRequired 属性,在这种情况下会抛出异常)。
现在,假设我有一个名为“MyField”(没有 IsRequired 属性)的字段的数据合同,我将字段名称更改为“MyField1”,这相当于删除“MyField”并添加“MyField1”。这应该意味着如果新合约反序列化为旧合约,“MyField”将被初始化为默认值,反之亦然。
因此,通过中断更改,Microsoft 意味着该字段不会设置正确的值,而不是会引发异常。我的理解正确吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。