反序列化部分作業時我遇到了問題。當我有一個帶有屬性的 xml 節點時,所有屬性值都會正確加載到我的類中,但是當我使用元素時,它只回傳 null。
我將以下內容存盤在 xml 檔案中:
<?xml version="1.0" encoding="ISO8859-1"?>
...
<numbers>
<number id="55">name1</number>
<number id="4">name2</number>
</numbers>
...
類定義如下:
public class root
{
[XmlArray("numbers")]
[XmlArrayItem(ElementName = "number")]
public List<NumberObj> numbers { get; set; }
}
[Serializable]
public class NumberObj
{
[XmlElement]
public string name { get; set; }
[XmlAttribute("id")]
public string id { get; set; }
}
保持為空的是名稱。我嘗試了多種方法,例如將串列更改為 arrary,但我所做的任何名稱都是空的。
我看到上面的類是錯誤的,因為當我將它序列化回 XML 時,我得到以下資訊:
<numbers>
<number id="123">
<number>abc</number>
</number>
<number id="45">
<number>abc</number>
</number>
</numbers>
誰能指出我正確的方向?
謝謝
uj5u.com熱心網友回復:
我認為正確的類定義必須是這樣的
[XmlRoot(ElementName="number")]
public class Number {
[XmlAttribute(AttributeName="id")]
public string Id { get; set; }
[XmlText]
public string Text { get; set; }
}
[XmlRoot(ElementName="numbers")]
public class Numbers {
[XmlElement(ElementName="number")]
public List<Number> Number { get; set; }
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/444241.html
