【发布时间】:2015-06-24 08:27:15
【问题描述】:
我以前从未这样做过,我正在碰壁。
这也必须在 vb.net 中完成,这不是我的事。
这是 XML 文件:
<?xml version="1.0" encoding="utf-8" ?>
<Departures>
<Departure>
<Destination>Birmingham</Destination>
<Service>109</Service>
<AimedDepartureTime>13:50</AimedDepartureTime>
<ExpectedDepartureTime>13:52</ExpectedDepartureTime>
</Departure>
<Departure>
<Destination>Nuneaton</Destination>
<Service>19</Service>
<AimedDepartureTime>13:55</AimedDepartureTime>
<ExpectedDepartureTime>13:56</ExpectedDepartureTime>
</Departure>
</Departures>
我需要去除它并用它填充数据网格控件。我可以做的 DataGrid 的事情。
这是我遇到问题的 xml 文件的反序列化。 我创建了一个类对象来处理 xml 的布局/格式。 这是那个班级:
Imports System.Xml.Serialization
<Serializable()>
Public Class Departure
<System.Xml.Serialization.XmlElement("Destination")>
Private DestinationValue As String
Public Property Destination() As String
Get
Return DestinationValue
End Get
Set(ByVal value As String)
DestinationValue = value
End Set
End Property
<System.Xml.Serialization.XmlElement("Service")>
Private ServiceValue As String
Public Property Service() As String
Get
Return ServiceValue
End Get
Set(ByVal value As String)
ServiceValue = value
End Set
End Property
<System.Xml.Serialization.XmlElement("AimedDepartureTime")>
Private AimedDepartureTimeValue As String
Public Property AimedDepartureTime() As String
Get
Return AimedDepartureTimeValue
End Get
Set(ByVal value As String)
AimedDepartureTimeValue = value
End Set
End Property
<System.Xml.Serialization.XmlElement("xpectedDepartureTime")>
Private ExpectedDepartureTimeValue As String
Public Property ExpectedDepartureTime() As String
Get
Return ExpectedDepartureTimeValue
End Get
Set(ByVal value As String)
ExpectedDepartureTimeValue = value
End Set
End Property
End Class
<Serializable()>
<System.Xml.Serialization.XmlRoot("Departures")>
Public Class Departures
<XmlArray("Departures"), XmlArrayItem("Departure")>
Public Departure As Departure()
End Class
这是我的调用代码:
Private Sub btnXmlloader_Click(sender As Object, e As EventArgs) Handles btnXmlloader.Click
Try
Dim p As New Departures
Dim x As New XmlSerializer(p.GetType)
'Deserialize text file to a new object.
Dim objStreamReader As New StreamReader(Application.StartupPath + "\departures.xml")
Dim departures As New Departures()
departures = x.Deserialize(objStreamReader)
objStreamReader.Close()
Catch ex As Exception
End Try
End Sub
我设置了一个断点和这一行:
departures = x.Deserialize(objStreamReader)
告诉我离开算不了什么。
我错过了什么?
【问题讨论】:
标签: vb.net xml-deserialization