1

我在谷歌上搜索了一个小时,但我认为我没有使用正确的词,因为我找不到一个非常简单的例子来说明我正在尝试做的事情。人们总是在示例中使用复杂的结构,如 List 或派生对象。

我想要做的就是 XMLSerialize 我的主要对象调用SuperFile到一个文件。此类SuperFile包含 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 是非常普通的类,主要是双重成员,如果我愿意,它们可以自己完美地序列化。但是现在,我希望它们在 SuperFile 对象中进行序列化。

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

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();
}

如果我把它放在 SuperFile 中,它会被序列化,但其他 2 个成员会被跳过。我认为它会被序列化,因为它不是一个复杂的类型......

public int _nDummy;

希望清楚!

谢谢!

4

1 回答 1

2

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

这是一个包含一些细节的答案 -为什么我的公共属性没有被 XmlSerializer 序列化?

于 2013-09-30T23:33:47.687 回答