我正在考虑将我们当前使用XMLSerializer
序列化/反序列化的类转换为使用DataContractSerializer
。我希望切换的主要原因是因为OnDeserialized
获得了DataContractSerializer
回调功能。如果需要,我真的希望能够进入对象的初始化。在我尝试转换的类中,<XmlAttribute()>
和<XmlElement()>
有多种用法,具体取决于它们在XML中的显示方式。
我已经创建了一个测试类,只是调用具有一些不同属性的Person,这样我就可以测试将对象序列化为XML然后将其反序列化回一个对象。这工作正常,但我不确定的一件事是为XML中需要属性的任何属性指定的内容,而不是元素(下面的“ID”)。
这就是我想要的:
<Person ID="5">
<FullName>FirstName LastName</FullName>
</Person>
这就是我得到的:
<Person>
<FullName>FirstName LastName</FullName>
<ID>5</ID>
</Person>
在下面的示例中,如何指定ID是属性而不是元素?因此序列化时的XML显示如上:
<DataContract()> _
Public Class Person
<DataMember()> _
Public FullName As String
'//What should go here?
Public ID As Integer
End Class
答案 0 :(得分:0)
<System.Xml.Serialization.XmlAttribute()>
应解决您的问题,有关详细信息,请参阅MSDN XmlAttribute reference。