【发布时间】:2014-03-09 12:57:07
【问题描述】:
我正在尝试实现“IXmlSerializable”接口并与“ReadXml”实现作斗争。这是我的序列化 xml:
<?xml version="1.0" encoding="utf-16"?>
<MyClass>
<IntProperty>100</IntProperty>
<BoolProperty>True</BoolProperty>
<ArrayProperty>
<ArrayEntry MyAttr="Bob" />
<ArrayEntry MyAttr="Alice" />
</ArrayProperty>
<StringProperty>Hello World!</StringProperty>
</MyClass>
有一个“小”特殊要求,反序列化必须向后兼容旧的序列化版本可能有不同的元素顺序,缺少元素或有额外的(现在未使用的)元素。我该怎么做?
Public Class MyClass
Implements IXmlSerializable
Public Property IntProperty As Integer
Public Property BoolProperty As Boolean
Public Property ArrayProperty As ArrayEntry()
Public Property StringProperty As String
Public Sub ReadXml(reader As System.Xml.XmlReader) Implements IXmlSerializable.ReadXml
' to be done ...
End Sub
' ...
End Class
Public Class ArrayEntry
Public Property MyAttr As String
End Class
【问题讨论】:
标签: vb.net serialization xml-serialization xmlreader backwards-compatibility