DataAontractSerialization的XMLAttribute等价物?

时间:2012-07-23 15:07:39

标签: vb.net serialization datacontractserializer xmlserializer xml-attribute

我正在考虑将我们当前使用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

1 个答案:

答案 0 :(得分:0)

<System.Xml.Serialization.XmlAttribute()>

应解决您的问题,有关详细信息,请参阅MSDN XmlAttribute reference

相关问题