将 XML-String 转换为对象
Convert XML-String to an Object
我有一个classOrder
。
[Serializable()]
[XmlRoot("Order")]
public class Order
{
[XmlAttribute("Counter")]
public int Counter { get; set; }
[XmlAttribute("Conveyer")]
public int Conveyer { get; set; }
}
现在我的 XML-String 是:
"<Order xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Counter>3</Counter>
<Conveyer>1</Conveyer>
</Order>"
我试图将此字符串转换为 class Order
的对象。
当我 运行 下面的代码时,我得到了一个 Order
类型的对象,但它的所有属性都是 0。
我的错误是什么?
StringReader reader = new StringReader(node.ToString());
XmlSerializer sr = new XmlSerializer(typeof(BaseClasses.Order));
BaseClasses.Order order = (BaseClasses.Order) sr.Deserialize(reader);
您应该使用 XmlElementAttribute
而不是 XmlAttribute
[XmlElementAttribute("Counter")]
public int Counter { get; set; }
[XmlElementAttribute("Conveyer")]
public int Conveyer { get; set; }
这将有助于正确反序列化。
我在我的项目中做过这样的任务。像这样尝试。
[XmlElement(ElementName = "Counter")]
public int Counter { get; set; }
我有一个classOrder
。
[Serializable()]
[XmlRoot("Order")]
public class Order
{
[XmlAttribute("Counter")]
public int Counter { get; set; }
[XmlAttribute("Conveyer")]
public int Conveyer { get; set; }
}
现在我的 XML-String 是:
"<Order xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Counter>3</Counter>
<Conveyer>1</Conveyer>
</Order>"
我试图将此字符串转换为 class Order
的对象。
当我 运行 下面的代码时,我得到了一个 Order
类型的对象,但它的所有属性都是 0。
我的错误是什么?
StringReader reader = new StringReader(node.ToString());
XmlSerializer sr = new XmlSerializer(typeof(BaseClasses.Order));
BaseClasses.Order order = (BaseClasses.Order) sr.Deserialize(reader);
您应该使用 XmlElementAttribute
而不是 XmlAttribute
[XmlElementAttribute("Counter")]
public int Counter { get; set; }
[XmlElementAttribute("Conveyer")]
public int Conveyer { get; set; }
这将有助于正确反序列化。
我在我的项目中做过这样的任务。像这样尝试。
[XmlElement(ElementName = "Counter")]
public int Counter { get; set; }