現在シリアライズ/デシリアライズしているクラスを変換してXMLSerializer
、DataContractSerializer
. 私が切り替えようとしている主な理由は、 でOnDeserialized
得られるコールバック機能のためDataContractSerializer
です。必要に応じて、オブジェクトの初期化を利用できるようにしたいと思っています。変換しようとしているクラスでは、XML での表示方法に応じて、<XmlAttribute()>
とがいくつか使用されています。<XmlElement()>
オブジェクトを XML にシリアル化し、それを逆シリアル化してオブジェクトに戻すことをテストできるように、いくつかの異なるプロパティを持つ Person という名前のテスト クラスを作成しました。これで問題なく動作しますが、要素 (以下の「ID」) ではなく、XML の属性である必要があるプロパティに何を指定すればよいか、私にはよくわかりません。
これは私が欲しいものです:
<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