Устаревший атрибут приводит к игнорированию свойства XmlSerialization.C#

Место общения программистов C#
Anonymous
Устаревший атрибут приводит к игнорированию свойства XmlSerialization.

Сообщение Anonymous »

Я выполняю рефакторинг некоторых объектов, которые сериализуются в XML, но необходимо сохранить несколько свойств для обратной совместимости. У меня есть метод, который преобразует старый объект в новый для меня и обнуляет устаревшее свойство. Я хочу использовать атрибут Obsolete, чтобы сообщить другим разработчикам не использовать это свойство, но это приводит к тому, что это свойство игнорируется XmlSerializer.

Похожий код:

Код: Выделить всё

[Serializable]
public class MySerializableObject
{
private MyObject _oldObject;
private MyObject _anotherOldObject;

private MyObject _newBetterObject;

[Obsolete("Use new properties in NewBetterObject to prevent duplication")]
public MyObject OldObject
{
get { return _oldObject; }
set { _oldObject = value; }
}

[Obsolete("Use new properties in NewBetterObject to prevent duplication")]
public MyObject AnotherOldObject
{
get { return _anotherOldObject; }
set { _anotherOldObject = value; }
}

public MyObject NewBetterObject
{
get { return _anotherOldObject; }
set { _anotherOldObject = value; }
}
}
Есть идеи по обходному пути? Мое лучшее решение — написать в комментариях XML слово "устарело"...

Обновление: я использую .NET 2.0

Подробнее здесь: https://stackoverflow.com/questions/331 ... ialization

Вернуться в «C#»