Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否所有公共读/写成员都使用XmlSerializer序列化?_C#_.net_Xml_Serialization - Fatal编程技术网

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序列化的。如果它们为空,是否跳过它们?