【发布时间】:2011-11-23 12:55:56
【问题描述】:
我有来自 web 请求的 xml 文档(您可以查看 here)。
我需要从每个“exchangerate”元素中获取 ccy、base_ccy、buy 和 sale 属性的值:
<exchangerate ccy="EUR" base_ccy="UAH" buy="10.81284" sale="10.81284"/>
我手动创建了 ExchangeRate 类,如下所示:
[Serializable]
public class ExchangeRate
{
[XmlAttribute("ccy")]
public string Ccy
{ get; set; }
[XmlAttribute("base_ccy")]
public string Base_ccy
{ get; set; }
[XmlAttribute("buy")]
public string Buy
{ get; set; }
[XmlAttribute("sale")]
public string Sale
{ get; set; }
}
并尝试以这种方式将 xml 元素“exchangerate”(我已从整个 xml 文档中分离出来)反序列化为 ExchangeRate 类的实例:
private ExchangeRate DesereilizeXMLNode(XmlNode node)
{
XmlSerializer mySerializer = new XmlSerializer(typeof(ExchangeRate));
TextReader reader = new StringReader(node.OuterXml);
return (ExchangeRate)mySerializer.Deserialize(reader);
}
当我调试 DesereilizeXMLNode 方法时,我在调用反序列化方法时收到异常。异常是 Grid 元素第一行 MainWindow.xaml 中的 XAMLParseException(这很奇怪),我认为它不是调用异常的合适位置。
问题是:我哪里错了?尝试以这种方式从 xml-element 创建对象实例时我错了吗?也许我在尝试仅反序列化具有属性的 xml 元素而不反序列化整个 xml 文档时犯了错误?
【问题讨论】:
标签: c# xml xml-deserialization