XmlSerializer.Deserialize List 项目
我已经尝试了所有可以在SO和其他地方找到的解决方案,但似乎无法弄清楚为什么这不起作用。
将XML字符串直接反序列化为对象,该对象具有一个属性 – 一个List:
[XmlTypeAttribute(AnonymousType = true)] public class UpdateData { [XmlArrayItem(ElementName = "Updates")] public List Updates { get; set; } public UpdateData() { Updates = new List(); } } public class Update { [XmlElement(ElementName = "MemberID")] public int MemberID { get; set; } [XmlElement(ElementName = "AnalysisID")] public int AnalysisID { get; set; } [XmlElement(ElementName = "MemberName")] public string MemberName { get; set; } [XmlElement(ElementName = "RecordDate")] public DateTime RecordDate { get; set; } }
这是反序列化代码:
private object DeserialzeXml(string xml) { var xmlSer = new XmlSerializer(typeof(UpdateData), new XmlRootAttribute("UpdateData")); var stringReader = new StringReader(xml); return xmlSer.Deserialize(stringReader); }
这是XML:
1 1 XXXXXXXXXXXXX 1 2 YYYYYYYYYYYYY 1 3 ZZZZZZZZZZZZ
此代码编译并运行,并返回UpdateData类型的对象,但Updates属性为空。 有任何想法吗?
尝试将列表中的属性更改为:
上述就是C#学习教程:XmlSerializer.Deserialize List 项目分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
[XmlArray(ElementName="Updates")] [XmlArrayItem(ElementName="Update")] public List Updates { get; set; }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1026882.html