作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试将 xml 字符串反序列化为自定义类,但我可以让我的“Riesgo”字段填充 asegurado 类:
<xml xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
<CodPostal>28029</CodPostal>
<Canal>216 </Canal>
<FormaPago>M</FormaPago>
<ConSeguro>N</ConSeguro>
<FechaEfecto>01/01/2014</FechaEfecto>
<Riesgo>
<asegurado>
<sexo>H</sexo>
<edad>37</edad>
<parentesco>M</parentesco>
</asegurado>
<asegurado>
<sexo>M</sexo>
<edad>34</edad>
<parentesco>C</parentesco>
</asegurado>
<asegurado>
<sexo>H</sexo>
<edad>4</edad>
<parentesco>D</parentesco>
</asegurado>
</Riesgo>
</xml>
我尝试了几种方法,但 Riesgo 中的列表总是为空。
public class TarificadorObject
{
[DataContract]
[Serializable]
[XmlRoot("xml")]
public class TarificadorIn
{
[XmlElement("CodPostal")]
public Int32 CodPostal { get; set; }
[XmlElement("Canal")]
public Int32 Canal { get; set; }
[XmlElement("Riesgo")]
[XmlArrayItem("asegurado", Type = typeof (Asegurado))]
public List<Asegurado> asegurado
{
get { return _asegurados; }
set { _asegurados = value; }
}
[XmlElement("FechaEfecto")]
public string FechaEfecto { get; set; }
private List<Asegurado> _asegurados = new List<Asegurado>();
}
[Serializable]
public class Asegurado
{
[XmlAttribute("sexo")]
public string sexo { get; set; }
[XmlAttribute("edad")]
public Int32 edad { get; set; }
[XmlAttribute("parentesco")]
public string parentesco { get; set; }
}
}
最佳答案
你想要:
[XmlArray("Riesgo")]
[XmlArrayItem("asegurado", Type = typeof (Asegurado))]
不是 XmlElementAttribute
(这会导致列表内容直接放在父项下)。
其实,你可以节俭一点; Type
是隐含的(来自列表),如果需要可以省略。
另请注意,这些都是错误的:
[XmlAttribute("sexo")]
public string sexo { get; set; }
[XmlAttribute("edad")]
public Int32 edad { get; set; }
[XmlAttribute("parentesco")]
public string parentesco { get; set; }
它们不是 xml 属性——它们是元素;您可以将其替换为:
public string sexo { get; set; }
public int edad { get; set; }
public string parentesco { get; set; }
(默认行为是一个以属性命名的元素)
关于c# - 使用 List<> 将 Xml 字符串反序列化为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26339437/
出于好奇,我尝试了一些原型(prototype)制作,但似乎只允许在第一个位置使用子例程的原型(prototype) &。 当我写作时 sub test (&$$) { do_somethin
我需要开发一个类似于 Android Play 商店应用程序或类似 this app 的应用程序.我阅读了很多教程,发现几乎每个教程都有与 this one 类似的例子。 . 我已经开始使用我的应用程
考虑一个表示“事件之间的时间”的列: (5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2) 我想将这些分组到 30 个桶中,但桶会重置。期望的结果: (0, 1,
我是一名优秀的程序员,十分优秀!