簡體   English   中英

是否所有公共讀寫成員都使用XmlSerializer序列化?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM