Reputation: 4029
I am serializing an object to XML. I have something like this:
Class A
{
public string propertyA1 { get; set; }
public List<B> bList { get; set; }
}
Class B
{
public string num {get; set;}
public string propertyB1 { get; set; }
}
When I serialize it to XML, I want it to look like this:
<A>
<propertyA1>someVal</propertyA1>
<B num=1>
<propertyB1>someVal</propertyB1>
</B>
<B num=2>
<propertyB1>someVal</propertyB1>
</B>
</A>
But, instead it looks like this:
<A>
<propertyA1>someVal</propertyA1>
<bList>
<B num=1>
<propertyB1>someVal</propertyB1>
</B>
<B num=2>
<propertyB1>someVal</propertyB1>
</B>
</bList>
</A>
Any idea how to get rid of the bList in the output? I can provide more sample code if needed
Thanks, Scott
Upvotes: 7
Views: 15203
Reputation: 152556
Add the attribute [XmlElement]
to treat the collection as a flat list of elements:
Class A
{
public string propertyA1 { get; set; }
[XmlElement("B")]
public List<B> bList { get; set; }
}
for more info click here
Upvotes: 17
Reputation: 1062
Also you can try XmlArrayItemAttribute. Please refer below links.
http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlarrayitemattribute.aspx
http://msdn.microsoft.com/en-us/library/2baksw0z(v=vs.71).aspx
Upvotes: 2