Искала - искала и не нашла..
Суть проблемы:
Есть объект который я сериализую (ХМЛ).
В нем было свойство
- Код: Выделить всё
Public Property BranchesLst() As ObservableCollection(Of Branch)
Get
Return _branchesList
End Get
Set(ByVal value As ObservableCollection(Of Branch))
_branchesList = value
End Set
End Property
В последующей версии сделала ошибку. Вместо того чтобы создать новое свойство или сохранить имя типа спискового элемента, я оставила имя свойства старое, а имя класса спискового элемента сменила. Получилось:
- Код: Выделить всё
Public Property BranchesLst() As ObservableCollection(Of Branch2)
Get
Return _branchesList
End Get
Set(ByVal value As ObservableCollection(Of Branch2))
_branchesList = value
End Set
End Property
И заметили это не сразу. В результате у части пользователей ( что еще не перешли на новую версию) в файле данных имя тега Branch, а у тех кто обновил Branch2, но при этом пропали старые данные
А теперь вопрос:
Как при помощи аттрибутов донести до сереализатора, что надо видеть и старые элементы и новые?
Пробовала вот так, ругается..
- Код: Выделить всё
<System.Xml.Serialization.XmlArray(), _
System.Xml.Serialization.XmlArrayItem(GetType(Branch2), ElementName:="Branch2"), _
System.Xml.Serialization.XmlArrayItem(GetType(Branch2), ElementName:="Branch")> _
<DisplayName("Филиалы")> _
Public Property BranchesLst() As ObservableCollection(Of Branch2)
Get
Return _branchesList
End Get
Set(ByVal value As ObservableCollection(Of Branch2))
_branchesList = value
End Set
End Property