问题描述
我一直在阅读这篇关于数据契约版本控制的 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 (将#修改为@)