Некоторое время назад я определил класс, который был сериализован с использованием XML.Этот класс содержал сериализуемое свойство Alignment
целочисленного типа.Теперь я расширил и обновил этот класс, в результате чего было добавлено новое свойство Position
, тип которого является другим классом, который также имеет несколько сериализуемых свойств.Новое свойство Position
теперь должно играть роль старого свойства Alignment
, так как тип свойства Position
является другим классом, один из его членов будет содержать значение, которое ранее содержалось в Alignment
свойство, что делает свойство Alignment
устаревшим.
Я пытаюсь выяснить, как мне убедиться, что при десериализации старой версии этого класса (без свойства Position
) яубедитесь, что десериализатор получит значение свойства Alignment
из старого класса и установит его как значение одного из членов свойства Position
в новом классе?
Private WithEvents _Position As Position = New Position(Alignment.MiddleMiddle, 0, True, 0, True)
Public Property Position() As Position 'NEW composite property that holds the value of the obsolted property, i.e. Alignment
Get
Return _Position
End Get
Set(ByVal value As Position)
_Position = value
End Set
End Property
Private _Alignment As Alignment = Alignment.MiddleMiddle
<Xml.Serialization.XmlIgnore(), Obsolete("Use Position property instead.")> _
Public Property Alignment() As Alignment 'The old, obsoleted property that I guess must be left for compliance with deserializing the old version of this class
Get
Return _Alignment
End Get
Set(ByVal value As Alignment)
_Alignment = value
End Set
End Property
Извинитекод написан на VB, но он одинаково хорошо применим к C # и любому другому языку .NET.
Не могли бы вы мне помочь, пожалуйста?