Edit:
[XmlArrayItem(typeof(Order))]
public List<Order> Orders { get; set; }
at
[XmlElement("order")]
public List<Order> Orders { get; set; }
well ... strictly speaking, I would be inclined (I don't like custom lists):
private List<Order> orders;
[XmlElement("order")]
public List<Order> Orders {get{ return orders ?? (orders = new List<Order>());}}
You also need another root object:
[XmlRoot("msg")]
public class Message
{
[XmlElement("reply")]
public MessageReply Reply { get; set; }
}
Then it works:
var ser = new XmlSerializer(typeof(Message));
MessageReply reply;
using(var reader = new StringReader(xml))
{
reply = ((Message)ser.Deserialize(reader)).Reply;
}
source
share