1
示例XML:小數場工作正常
<TestXML>
<TestDecimal attr1="Required" attr2="false">0.34</TestDecimal>
<TestInteger attr1="MyAttr" attr2="1" DateAdded="">25</TestInteger>
</TestXML>
類定義:
public class TestXML {
public DecimalValue TestDecimal;
public IntegerValue TestInteger;
}
public class IntegerValue {
[XmlText]
public int value {get; set;}
[XmlAnyAttribute]
public XmlAttribute[] XAttributes {get; set;}
}
public class DecimalValue {
[XmlText]
public decimal value {get; set;}
[XmlAnyAttribute]
public XmlAttribute[] XAttributes {get; set;}
}
代碼反序列化:
XmlSerializer serializer = new XmlSerializer(typeof(TestXML));
using (FileStream fs = new FileStream(@"C:\Test.xml", FileMode.Open)) {
TestXML myxml = (TestXML)serializer.Deserialize(fs);
}
在測試這一點,回來與整數值但不是十進制值:
myxml
TestDecimal
value | 0
XAttributes {string[2]}
[0] Name="attr1", Value="Required"
[1] Name="attr2", Value="false"
TestInteger
value | 25
XAttributes {string[3]}
[0] Name="attr1", Value="MyAttr"
[1] Name="attr2", Value="1"
[2] Name="DateAdded", Value=""
是否有反序列化的小數,會導致它回來0?對於十進制的基本類型,十進制值可以很好地恢復。
我從來沒有見過'DecimalValue','IntegerValue'類。嘗試更改爲十進制並查看結果 – Tilak
這些類對象用於保存所需的屬性。原始類型可以工作,但不能用於屬性。 –
你試過序列化,看看是否有效?換句話說,給定一個內存中的對象,你能創建一個帶有正確內容的XML文件嗎? – phoog