РЕДАКТИРОВАНИЕ : После чтения статьи MS Connect, кажется, что.Net 2.0 имеет 'функцию', где это делает ObsoleteAttribute эквивалентным XmlIgnoreAttribute без любого уведомления в документации. Таким образом, я собираюсь пересмотреть свой ответ, чтобы сказать, что единственный способ иметь Ваш пирог и съесть его также в этом экземпляре состоит в том, чтобы последовать совету @Will и сериализация реализации вручную . Это будет Вашим единственным соответствующим требованиям завтрашнего дня способом включать свойства Obsolete в Ваш XML. Это не симпатично в.Net 2.0, но.Net 3.0 + может сделать жизнь легче.
От XmlSerializer:
Объекты, отмеченные с Устаревшим Атрибутом, больше сериализированным В Платформе.NET 3.5, класс XmlSerializer больше не сериализирует объекты, которые отмечены как [Устаревшие].
1) ВЗМАХ: Попытайтесь добавить XmlAttributeAttribute к свойству; возможно, это переопределит ObsoleteAttribute
2), ЛАВАШ: IXmlSerializable
Можно попробовать следующее обходное решение:
добавляют метод, названный
ShouldSerializeOldObject ()
{
return true;
}
ShouldSerializeAnotherOldObject ()
{
return true
}
, это может переопределить устаревший Атрибут