[英]Are all public read/write members serialized with XmlSerializer?
我有一些未序列化的公共讀/寫成員,我不知道為什么。 查看一些代碼,我的根類被標記為可序列化的:
[Serializable]
public class MyClass
我有一個默認的構造函數,可初始化10-15個string
成員。 MyClass中大約有50個帶有get和set的公共讀/寫字符串成員-在任何這些屬性上都沒有設置顯式的序列化屬性。 序列化看起來像這樣:
XmlSerializer x = new XmlSerializer(typeof(MyClass));
TextWriter twWriter = new StreamWriter(sFileName);
x.Serialize(twWriter, this);
twWriter.Close();
這些成員中只有極少數(20-30)被序列化為我的xml文件。 我對XmlSerializer
類有什么缺失或誤解?
通過在XmlElement
屬性上將IsNullable
設置為true
,可以強制在輸出中序列化null
屬性。
public class Example
{
[XmlElement(IsNullable=true)]
public string Text { get; set; }
}
現在, Text
屬性將序列化為<Text xsi:nil="true" />
。
附帶說明一下,如果僅執行XML序列化,則不需要[Serializable]
屬性。
實際上,如果它們為null,則不會序列化它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.