Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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# 如何在容器对象内XMLSerialize成员对象_C#_.net_Serialization_Xml Serialization - Fatal编程技术网

C# 如何在容器对象内XMLSerialize成员对象

C# 如何在容器对象内XMLSerialize成员对象,c#,.net,serialization,xml-serialization,C#,.net,Serialization,Xml Serialization,我已经在谷歌上搜索了一个小时了,但我觉得我用的词不对,因为我找不到一个简单的例子来说明我在做什么。人们总是在样本中使用复杂的结构,如列表或派生对象 我所要做的就是将名为superfle的主要对象XML序列化到一个文件中。该superfle类包含2个成员,并且这2个成员未序列化,因此生成的XML文件为空(仅包含头) 这是我的代码,我做错了什么 超细 public class SuperFile { private NetworkInfo _networkInfo;

我已经在谷歌上搜索了一个小时了,但我觉得我用的词不对,因为我找不到一个简单的例子来说明我在做什么。人们总是在样本中使用复杂的结构,如列表或派生对象

我所要做的就是将名为
superfle
的主要对象XML序列化到一个文件中。该
superfle
类包含2个成员,并且这2个成员未序列化,因此生成的XML文件为空(仅包含头)

这是我的代码,我做错了什么

超细

public class SuperFile
{
        private NetworkInfo _networkInfo;
        private Planification _planification;

        public NetworkInfo NI
        {
            get
            {
                return _networkInfo;
            }
        }

        public Planification Planif
        {
            get
            {
                return _planification;
            }
        }
}
NetworkInfo和Planification是一个非常普通的类,大多数是双成员的,如果我愿意的话,它们可以自己完全序列化。但是现在,我希望它们在Superfle对象内部序列化

最后,这里是我进行序列化的代码

public void Save(string strFilename)
{
    System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(typeof(ExoFile));
    TextWriter WriteFileStream = new StreamWriter(strFilename);
    x.Serialize(WriteFileStream, this);

    WriteFileStream.Close();
}
如果我把它放在Superfle中,它会被序列化,但会跳过另外两个成员。我认为它可以序列化,因为它不是一个复杂的类型

public int _nDummy;
希望一切都清楚


谢谢

XMLSerializer有一些限制,其中之一是需要setter。(它也不会序列化私有字段、索引器..)。这不是一个明显的问题,过去让我挠头:)


这里有一个带有一些细节的答案-

尝试在属性(NI和Planif)上设置一个setter;就是这样!谢谢NDJ。你能写一个完整的答案并解释原因吗?完成-很高兴它有帮助!