|
IXmlSerializableを実装してみました。
データを格納するクラス(TestClass)です。
名前が超適当な上に、必要最低限な実装ですが…
-----------------
Imports System.Xml.Schema
Imports System.Xml.Serialization
Imports System.Collections.Generic
Public Class TestClass
Implements IXmlSerializable
Public Items As Dictionary(Of String, String)
Public Sub New()
Me.Items = New Dictionary(Of String, String)
End Sub
Public Function GetSchema() As System.Xml.Schema.XmlSchema Implements System.Xml.Serialization.IXmlSerializable.GetSchema
Return Nothing
End Function
Public Sub ReadXml(ByVal reader As System.Xml.XmlReader) Implements System.Xml.Serialization.IXmlSerializable.ReadXml
'省略
End Sub
Public Sub WriteXml(ByVal writer As System.Xml.XmlWriter) Implements System.Xml.Serialization.IXmlSerializable.WriteXml
For Each key As String In Me.Items.Keys
writer.WriteElementString(key, Me.Items(key))
Next
End Sub
End Class
-----------------
そしてこんな感じに値をセットしていきます。
Dim tc As TestClass = New TestClass
tc.Items.Add("str01", "aaa")
tc.Items.Add("str02", "bbb")
tc.Items.Add("str03", "ccc")
で、XMLへとシリアライズすると、以下のような結果になりました。
<?xml version="1.0"?>
<TestClass>
<str01>aaa</str01>
<str02>bbb</str02>
<str03>ccc</str03>
</TestClass>
目的に適っているでしょうか??
ReadXmlメソッドを思いっきり省略しているので、
もしXMLからデシリアライズするなら実装しないといけませんが。。
|