【发布时间】:2014-10-08 12:34:48
【问题描述】:
XML
<MeterWalkOrder>
<Name>Red Route</Name>
<Meters>
<Meter>
<MeterID>1</MeterID>
<SerialNumber>12345</SerialNumber>
</Meter>
<Meter>
<MeterID>2</MeterID>
<SerialNumber>SE</SerialNumber>
</Meter>
</Meters>
</MeterWalkOrder>
我无法使用任何序列化程序将简单的 XML 放入对象中
var xml = File.ReadAllText("WalkOrder.xml");
var xmlSerializer = new NFormats.Xml.XmlSerializer();
var obj = xmlSerializer.Deserialize<MeterWalkOrder>(new StringReader(xml));
我刚取回 2 米长的物体,没有设置任何属性,甚至没有按步行顺序设置名称。
public partial class MeterWalkOrder
{
public MeterWalkOrder()
{
Meters = new List<Meter>();
}
[DataMember]
public String Name { get; set; }
}
}
using System;
using System.Xml.Serialization;
namespace WindowsFormsApplication1.Classes
{
public class Meter : IMeter
{
[XmlAttribute]
public int MeterID { get; set; }
[XmlAttribute]
public String SerialNumber { get; set; }
}
}
我愿意尝试任何 xml 序列化程序。
【问题讨论】:
-
MeterID和SerialNumber不是Meter对象的属性;它们是元素。尝试用[XmlElement]替换[XmlAttribute]标签。
标签: c# xml xml-serialization xml-deserialization