如何对容器对象内的成员对象进行 XML 组织化

本文关键字:成员对象 XML 组织化 对象 | 更新日期: 2023-09-27 18:33:26

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

只想将我的主要对象 XML 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;

希望清楚!

谢谢!

如何对容器对象内的成员对象进行 XML 组织化

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

下面是一些详细信息的答案 - 为什么我的公共属性未由 XmlSerializer 序列化?