Я выполняю рефакторинг некоторых объектов, которые сериализованы в 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