XML にシリアル化されたいくつかのオブジェクトをリファクタリングしていますが、下位互換性のためにいくつかのプロパティを保持する必要があります。古いオブジェクトを新しいオブジェクトに変換し、廃止されたプロパティを null にするメソッドがあります。この属性を使用して、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 コメントに obsolete を書くことです...
更新: .NET 2.0 を使用しています