我有一些不被序列化的公共读/写成员,我无法弄清楚原因。查看一些代码,我的根类标记为可序列化:
[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
班级缺少什么或误解了什么?
答案 0 :(得分:3)
您可以通过在null
属性上将IsNullable
设置为true
来强制在输出中序列化XmlElement
属性。
public class Example
{
[XmlElement(IsNullable=true)]
public string Text { get; set; }
}
Text
属性现在将被序列化为<Text xsi:nil="true" />
。
另外,如果您只进行XML序列化,则不需要[Serializable]
属性。
答案 1 :(得分:0)