I have a list inside another list (a product with variants). I would like the parent list to have attributes set on it (just an id and a name).
Desired Output
<embellishments>
<type id="1" name="bar bar foo">
<row>
<id>1</id>
<name>foo bar</name>
<cost>10</cost>
</row>
</type>
</embellishments>
Current Code
[XmlRoot( ElementName = "embellishments", IsNullable = false )]
public class EmbellishmentGroup
{
[XmlArray(ElementName="type")]
[XmlArrayItem("row", Type=typeof(Product))]
public List<Product> List { get; set; }
public EmbellishmentGroup() {
List = new List<Product>();
List.Add( new Product() { Id = 1, Name = "foo bar", Cost = 10m } );
}
}
public class Product
{
[XmlElement( "id" )]
public int Id { get; set; }
[XmlElement( "name" )]
public string Name { get; set; }
[XmlElement( "cost" )]
public decimal Cost { get; set; }
}
Current Output
<embellishments>
<type>
<row>
<id>1</id>
<name>foo bar</name>
<cost>10</cost>
</row>
</type>
</embellishments>
You need to make another class which represents the
typeelement. Then you can add properties to it for the attributes, like this: