Как изменить свойство Type of DataContract, не нарушая обратную совместимость? - PullRequest
0 голосов
/ 08 апреля 2019

Я работаю с сериализацией DataContract и не хочу менять тип свойства Datamember

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

Теперь я не хочу менять тип свойства Height с 'int' на 'double'. Однако я не хочу быть уверенным, что если я открою старый файл, то значение из файла будет использовано и правильно присвоено значению «Высота», т.е. значение типа int приведено к удвоению.

Я хочу сделать это без необходимости сохранять какие-либо избыточные свойства. Есть ли способ, которым я могу достичь этого?

1 Ответ

1 голос
/ 08 апреля 2019

Управление версиями контракта данных

Следующие изменения всегда нарушаются

...

  • Изменениедоговор данных члена данных .Например, изменение типа элемента данных с целого числа на строку или с типа с контрактом данных с именем «Клиент» на тип с контрактом данных с именем «Персона».

Так что нет, вы не можете сделать это, это нарушает контракт.

Вам нужно будет как-то резать и бегать.Возможно, вам придется сделать сантехнику, чтобы иметь дело со старыми контрактами.

...