[英]Deserializing xml to object causes an error
<?xml version="1.0" encoding="UTF-8"?>
<Order xmlns="urn:schemas-alibaba-com:billing-data" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Currency>USD</Currency>
<Description>description</Description>
</Order>
我有上面的xml字符串,我試圖反序列化為一個對象。 這是一個自動生成的類。
[XmlTypeAttribute(AnonymousType = true,
Namespace = "urn:schemas-alibaba-com:billing-data")]
[XmlRootAttribute(ElementName="Order",
Namespace = "urn:schemas-alibaba-com:billing-data",
IsNullable = false)]
public partial class Order
{
private string currencyField;
private object descriptionField;
}
我得到一個例外:
Exception:
{"There is an error in XML document (1, 2)."}
Inner exception :
{"<Order xmlns='urn:schemas-alibaba-com:billing-data'> was not expected."}
我在這里錯過了什么? 下面是反序列化的代碼:第3行拋出異常。
var xmlReader = new StringReader(xml_data);
var serializer = new XmlSerializer(typeof(Order));
var instance = (Order)serializer.Deserialize(xmlReader);
我測試你的xml內容,沒關系。
這是我的代碼:
[TestMethod]
public void Xml_ShouldBeDeserialized()
{
var serializer = new XmlSerializer(typeof (Order));
using (var stream = File.OpenRead(@"D:\test.xml"))
{
var obj = serializer.Deserialize(stream);
var order = obj as Order;
Assert.IsNotNull(order);
}
}
[XmlTypeAttribute(AnonymousType = true,
Namespace = "urn:schemas-alibaba-com:billing-data")]
[XmlRoot(ElementName = "Order",
Namespace = "urn:schemas-alibaba-com:billing-data",
IsNullable = false)]
public partial class Order
{
private string currencyField;
private object descriptionField;
public string Currency { get; set; }
public string Description { get; set; }
}
我想你可能會錯過字段“貨幣”和“描述”,它們應該是可訪問的,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.