使用C#.NET 4 - XML示例(實際樣品有6個屬性)多元素反序列化XML文件屬性 - 屬性不反序列化
<TestXML>
<TestElement attr1="MyAttr" attr2="1" DateAdded="">25</TestElement>
</TestXML>
對於我的類定義我有以下幾點:
public class TestXML() {
public TestXML() {}
public int TestElement {get; set;}
[XmlAttribute]
public string attr1 {get; set;}
[XmlAttribute]
public string attr2 {get; set;}
[XmlIgnore]
public DateTime DateAdded {get; set;}
[XmlAttribute("DateAdded")]
public string dateadded {
get{ return (DateAdded == null ? "" : DateAdded.ToString();}
set{ if(!value.Equals("")) DateAdded = DateTime.Parse(value);}
}
}
現在的代碼進行反序列化:
string xml = "<TestXML><TestElement attr1=\"MyAttr\" attr2=\"1\" DateAdded=\"\">26</TestElement></TestXML>"
using (StringReader sr = new StringReader(xml)) {
XmlSerializer serializer = new XmlSerializer(typeof(TestXML));
TestXML myxml = (TestXML)serializer.Deserialize(sr);
}
現在我們得到的結果是(在VS觀看對象):
myxml
attr1 | null
attr2 | null
TestElement | 25
完全喪失了爲什麼屬性不會反序列化。
''僅將**指向** public int TestElement {get; set;}' –
此問題的目標是讓代碼正常工作,xml格式正確。 –