C# 是否所有公共读/写成员都使用XmlSerializer序列化?
我有一些公共读/写成员没有被序列化,我不知道为什么。查看一些代码,我的根类被标记为可序列化:C# 是否所有公共读/写成员都使用XmlSerializer序列化?,c#,.net,xml,serialization,C#,.net,Xml,Serialization,我有一些公共读/写成员没有被序列化,我不知道为什么。查看一些代码,我的根类被标记为可序列化: [Serializable] public class MyClass 我有一个初始化10-15个string成员的默认构造函数。MyClass中大约有50个带有get和set的公共读/写字符串成员,其中任何一个都没有设置显式序列化属性。序列化如下所示: XmlSerializer x = new XmlSerializer(typeof(MyClass)); TextWriter twWriter
[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
类,我遗漏了什么或误解了什么?事实上,如果它们为null,则它们不会被序列化 事实上,如果它们为null,则不会序列化 通过在xmlement
属性上将IsNullable
设置为true
,可以强制在输出中序列化null
属性
public class Example
{
[XmlElement(IsNullable=true)]
public string Text { get; set; }
}
文本
属性现在将被序列化为
另一方面,如果只进行XML序列化,则不需要
[Serializable]
属性。通过在xmlement
属性上将IsNullable
设置为true
,可以强制在输出中序列化null
属性
public class Example
{
[XmlElement(IsNullable=true)]
public string Text { get; set; }
}
文本
属性现在将被序列化为
另一方面,如果只进行XML序列化,则不需要使用
[Serializable]
属性。未序列化的字段类型是什么?e、 g.哈希表不是由XmlSerializer序列化的。如果它们为空,是否跳过它们?未序列化的字段的类型是什么?e、 g.哈希表不是由XmlSerializer序列化的。如果它们为空,是否跳过它们?