XML 序列化 - 默认情况下忽略变量

本文关键字:变量 情况下 默认 序列化 XML | 更新日期: 2023-09-27 18:32:34

在使用 XmlSerialization 将对象序列化为 xml 时,是否可以默认忽略普通变量?

我有一个变量:

class SomeClass
{
    private bool trueOrFalse = false;
    public bool TrueOrFalse
    {
        get { return trueOrFalse; }
        set { trueOrFalse = value; }
    }
}

在序列化它时,我在 XML 文件中得到两个"元素",每个元素一个 - 但它们是相同的。因此,对于一个更干净的XML文件,我只希望以某种方式包含属性,而不必使用XmlIgnore - 只是作为默认值,有什么方法可以做到这一点吗?

XML 序列化 - 默认情况下忽略变量

对不起,这是我的错误。我有一个几个类实现的接口,所有字段都设置为私有。幸运的是,通过测试实现接口的特定对象,我将其字段设置为公共,这是它同时写入属性名称 + 属性值以及字段和字段值的原因。

因此,字段必须是私有的。

根据 C# 的版本,您可以像这样定义属性:

public class SomeClass
{
    public bool TrueOrFalse{ get; set; }      
}
正如

@Jaime Olivares 在 xml 序列化中所说的那样,只序列化类中的公共成员,请尝试像这样为您的字段添加前缀

[Serializable]
class SomeClass
{
//does not persist the member in your serialization process
 [NonSerialized]
 private bool trueOrFalse = false;
 public bool TrueOrFalse
 {
    get { return trueOrFalse; }
    set { trueOrFalse = value; }
 }

}