如何在不破坏向后兼容性的情况下更改数据协定的类型属性



我正在使用数据合约序列化,我不想更改数据成员属性的类型

[DataContract]
public class Page
{
    [DataMember]
    public int Height{get;set;}
}

现在我不想将 Height 属性的类型从"int"更改为"double"。但是,我不想确保如果我打开一个旧文件,该文件中的值会被使用并正确分配给"高度",即 int 类型的值转换为双倍。

我想这样做而不必保留任何冗余属性。有什么方法可以做到这一点吗?

数据协定版本控制

以下更改始终是中断性的

  • 更改数据成员的数据协定。例如,将数据成员的类型从整数更改为字符串或从类型更改将名为"Customer"的数据协定转换为具有数据协定的类型命名为"人"。

所以不,你不能这样做,这违反了合同。

您将需要以某种方式切割和运行。您可能需要制作管道来处理旧合同。

相关内容

  • 没有找到相关文章

最新更新