1
我想反序列化一個簡單的XML,看起來像這樣vb.net XML反序列化回報空單
<categories>
<category name="camera">
<tags>
<tag name="6" value="stdy_cam"/>
<tag name="7" value="shaky"/>
</tags>
</category>
<category name="classify">
<tags></tags>
</category>
</categories>
這是我的加載方法 -
Private Sub loadAllCategories()
Dim serializer As XmlSerializer
Using stream As New System.IO.FileStream("C:\temp\tags2.xml", IO.FileMode.Open)
serializer = New XmlSerializer(GetType(List(Of Category)), New XmlRootAttribute("categories"))
Me.Categories = DirectCast(serializer.Deserialize(stream), List(Of Category))
End Using
End Sub
這些都是我的課 -
<Serializable()>
Public Class Category
<XmlAttribute("name")>
Public Property Name As String
<XmlArrayItem("tag")>
Public Property Tags As New List(Of Tag)
End Class
<Serializable()>
Public Class Tag
<XmlAttribute("name")>
Public Property Name As String
<XmlAttribute("value")>
Public Property Value As String
End Class
一切似乎是確定,但是當我運行程序分類列表中始終是空的。該程序不會拋出任何錯誤或異常。當我調試時,它只顯示0作爲類別的計數。我可能做錯了什麼?
之類的工作,但不完全 - 我可以看到,現在有兩類,但標籤列表是在所有類別空!我試着用Tag類的建議 -,但沒有運氣。 –
Jay
@Jay沒問題,請參閱編輯。 – JSteward
啊!那工作。萬分感謝。所以,訣竅是使用XMLArray而不是XMLArrayItem? – Jay