I'm stumped on how to deserialize the following XML into entities that I've created:
<values totalcount="576">
<version>3</version>
<item>
<datetime>2/22/2016 8:35:00 PM - 8:40:00 PM</datetime>
<value channel="Outside" channelid="4">10.0000</value>
</item>
<item>
<datetime>2/22/2016 8:40:00 PM - 8:45:00 PM</datetime>
<value channel="Inside" channelid="2"/>
</item>
</values>
These are the classes I've used. When I deserialize, the ValueItems list is created properly with the correct number of items and I get correct TotalCount and Version values but each ValueItem has default values for its members instead of the expected values:
public class Values
{
[XmlAttribute(AttributeName = "totalcount")]
public int TotalCount { get; set; }
[XmlElement(ElementName = "version")]
public string Version { get; set; }
[XmlElement(ElementName ="item")]
public List<ValueItem> ValueItems { get; set; }
}
public class ValueItem
{
[XmlElement(ElementName = "datetime")]
public string DateTime { get; set; }
[XmlElement(ElementName="value")]
public SensorValue Value { get; set; }
}
public class SensorValue
{
[XmlAttribute(AttributeName = "channel")]
public string Channel { get; set; }
[XmlAttribute(AttributeName = "channelid")]
public string ChannelId { get; set; }
public string Value { get; set; }
}
I've tried decorating ValueItems with XmlArrayItem("item"). I've tried XmlArrayItem along with XmlArray. I've tried decorating the ValueItem class with XmlType("item").
Any ideas? The MSDN docs on using XmlAttributes aren't exactly comprehensive.