您好,我有一个 BOOKING 类继承了 Message 列表,如下所示
Public Class BOOKING : Inherits List(Of Message)
Private Property MessageProperty As Message
<XmlAttribute>
Public Property partner As String
<XmlAttribute>
Public Property transaction As String
<XmlAttribute>
Public Property version As String
Public Property Message As Message
Get
Return MessageProperty
End Get
Set(value As Message)
MessageProperty = value
End Set
End Property
消息类拥有所有可供预订的属性
当我尝试序列化时,没有任何序列化,这是我用来设置属性和序列化预订的代码
Try
Dim z As New BOOKING
Dim x As New Message
z.partner = "company name"
z.transaction = "BOOKING"
z.version = "1.0"
x.MessageType = "C"
x.CustomerNumber = "123"
x.BookingReference = "5845"
x.CustomerBookingReference = "036598"
x.NoDrivers = "1"
z.Message = x
SaveAsXML(z)
Return True
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
我的另存为 xml 如下
Try
Dim Samples As New List(Of BOOKING)
Dim Files As String() = Directory.GetFiles("c:\ftptest\New Booking")
For Each fl In Files
'Deserialize XML file
Dim objStreamReader As New StreamReader(fl)
Dim i As New BOOKING
Dim x As New XmlSerializer(i.GetType)
i = x.Deserialize(objStreamReader)
Samples.Add(i)
Next
Form1.DataGridView1.DataSource = Samples
Return True
Catch ex As Exception
Throw ex
End Try
xml 文件的结果是这样的
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
预订的布局必须如下
<BOOKING>
<Message>
message properties here
</Message>
<BOOKING>
每个预订中只能有一条消息,但要按照上面的方式,我被告知应该在它自己的类中才能获得该布局,
所以我想知道如何序列化并可能反序列化上述预订