在 C# 中 XML 反序列化

标签: C#
发布时间: 2013/12/3 1:49:15
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个类,该类在之前被序列化。我们必须从它的 xml 输出。当我们打开该项目时我们反序列化 xml 来保存的对象。现在我有新的 bool 属性类中添加的因为它是一个新的属性,旧 xmls 不具有此属性。我反序列化工作正常,但为 bool 属性分配 false,我想让它设置 true,如果它不在 XML 中那里。我如何可以实现这一目标呢?我试着像这样

public bool? _flag;
[XmlElement("Flag")]
public bool? flag
{
    get
    {
        if (null != _flag)
        {
            return _flag;
        }
        return true;
    }
    set { _flag= value; }
}

解决方法 1:

您只需要添加您的默认构造函数并将其设置在那里。下面是一个示例:

public MyObject()
{
    Flag = true;
}

编辑

不知道到底在代码中,但这工作完全正常:

public class MyObject
    {
        public MyObject()
        {
            Flag = true;
        }

        public bool Flag { get; set; }

        public string Name { get; set; }
    }

第一,我那里没有 bool 属性和序列化为一个文件...然后为步骤 2 中,添加该 bool 属性和构造函数...然后它从磁盘和它表明反序列化 true ,这就是我的预期。

请检查您的代码,如我所料什么别的事情。如果您需要帮助,请在这里发表的完整类。

官方微信
官方QQ群
31647020