数据合约版本控制

问题描述

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