I have a tried list, array and all different types
I have a list of items which is serializing just fine
in c#
public mySortableBindingList<Item> TransactionLines = new mySortableBindingList<Item>();
in vb.net
Public WithEvents TransactionLines As New mySortableBindingList(Of Item)
xml output is
<TransactionLines>
<Item>
<elements>
</item>
<Item>
<elements>
</item>
</TransactionLines>
my serilization method is the following
In C#
public string SerializeToXML<T>(T obj)
{
string XMLString = "";
try {
XmlSerializer mySerializer = new XmlSerializer(obj.GetType());
using (MemoryStream myMemStream = new MemoryStream()) {
mySerializer.Serialize(myMemStream, obj);
myMemStream.SeekToBegin();
XMLString = myMemStream.ReadToEnd(Encoding.UTF8);
}
} catch (Exception ex) {
}
return XMLString;
}
In vb.net
Public Function SerializeToXML(Of T)(ByVal obj As T) As String
Dim XMLString As String = ""
Try
Dim mySerializer As XmlSerializer = New XmlSerializer(obj.GetType)
Using myMemStream As MemoryStream = New MemoryStream()
mySerializer.Serialize(myMemStream, obj)
myMemStream.SeekToBegin()
XMLString = myMemStream.ReadToEnd(Encoding.UTF8)
End Using
Catch ex As Exception
End Try
Return XMLString
End Function
List to be serialized
c#
[XmlElement(Order = 17)]
public mySortableBindingList<ItemSerial> Serials = new mySortableBindingList<ItemSerial>();
vb.net
<XmlElement(Order:=17)>
Public Serials As New mySortableBindingList(Of ItemSerial)
This is my xml output
<Serials>
<Serial>A</Serial>
<ExpiryDate>0001-01-01T00:00:00</ExpiryDate>
<Qty>1</Qty>
</Serials>
<Serials>
<Serial>B</Serial>
<ExpiryDate>0001-01-01T00:00:00</ExpiryDate>
<Qty>1</Qty>
</Serials>
I need the following please explain what I can be doing wrong
<Serials>
<ItemSerial>
<Serial>A</Serial>
<ExpiryDate>0001-01-01T00:00:00</ExpiryDate>
<Qty>1</Qty>
</ItemSerial>
<ItemSerial>
<Serial>B</Serial>
<ExpiryDate>0001-01-01T00:00:00</ExpiryDate>
<Qty>1</Qty>
</ItemSerial>
</Serials>
From Richards answer I found that I could use XMLArray attribute which will infer that it is a list and therefore be serialized in the manner I required.