Try add XmlAtribute to id object.
UPDATE: I'am adding example how you can deserialize it...
Classes:
[XmlType(AnonymousType=true)]
[XmlRoot(Namespace="", IsNullable=false)]
public class foo {
[XmlElement("barlist")]
public List<fooBarlist> barlist { get; set; }
}
[XmlType(AnonymousType=true)]
public class fooBarlist {
[XmlElement("bar")]
public List<fooBarlistBar> bar { get; set; }
[XmlAttribute()]
public byte id { get; set; }
}
[XmlType(AnonymousType=true)]
public class fooBarlistBar {
[XmlAttribute()]
public byte number { get; set; }
[XmlAttribute()]
public string value { get; set; }
}
test xml:
<foo>
<barlist id="1">
<bar number="1" value="Hi" />
<bar number="2" value="Hello" />
</barlist>
<barlist id="2">
<bar number="3" value="Bye" />
<bar number="4" value="Bye bye" />
</barlist>
</foo>
and the code to deserialize xml to object:
XmlSerializer serializer = new XmlSerializer(typeof(foo));
XmlReader reader = XmlReader.Create("D:\\test.xml");
foo testObj = serialier.Deserialize(reader) as foo;
and then we have result
