Устаревший атрибут заставляет свойство быть проигнорированным XmlSerialization

52
задан jv42 12 January 2012 в 06:14
поделиться

3 ответа

РЕДАКТИРОВАНИЕ : После чтения статьи MS Connect, кажется, что.Net 2.0 имеет 'функцию', где это делает ObsoleteAttribute эквивалентным XmlIgnoreAttribute без любого уведомления в документации. Таким образом, я собираюсь пересмотреть свой ответ, чтобы сказать, что единственный способ иметь Ваш пирог и съесть его также в этом экземпляре состоит в том, чтобы последовать совету @Will и сериализация реализации вручную . Это будет Вашим единственным соответствующим требованиям завтрашнего дня способом включать свойства Obsolete в Ваш XML. Это не симпатично в.Net 2.0, но.Net 3.0 + может сделать жизнь легче.

От XmlSerializer:

Объекты, отмеченные с Устаревшим Атрибутом, больше сериализированным В Платформе.NET 3.5, класс XmlSerializer больше не сериализирует объекты, которые отмечены как [Устаревшие].

35
ответ дан user7116 7 November 2019 в 09:33
поделиться

1) ВЗМАХ: Попытайтесь добавить XmlAttributeAttribute к свойству; возможно, это переопределит ObsoleteAttribute
2), ЛАВАШ: IXmlSerializable

Реализации
2
ответ дан 7 November 2019 в 09:33
поделиться

Можно попробовать следующее обходное решение:

добавляют метод, названный

ShouldSerializeOldObject ()
{
   return true;
}

ShouldSerializeAnotherOldObject ()
{
   return true
}

, это может переопределить устаревший Атрибут

0
ответ дан Bluenuance 7 November 2019 в 09:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: