XmlSerialization - 默认情况下忽略变量

时间:2012-04-29 23:17:00

标签: c# properties xml-serialization

使用XmlSerialization将对象序列化为xml时,是否可以忽略常规变量?

我有一个变量:

class SomeClass
{
    private bool trueOrFalse = false;

    public bool TrueOrFalse
    {
        get { return trueOrFalse; }
        set { trueOrFalse = value; }
    }
}

序列化时,我在XML文件中得到两个“元素” - 但它们是相同的。因此,对于更简洁的XML文件,我希望以某种方式包含属性,而不必使用XmlIgnore - 只是默认情况下,以任何方式执行此操作?

3 个答案:

答案 0 :(得分:1)

对不起,这是我的错。我有一个接口,有几个类实现,所有字段都设置为私有。幸运的是,通过测试实现接口的特定对象,我将其字段设置为public,这是它写入propertyname + propertyvalue以及field和fieldvalue的原因。

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:-1)

正如@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; }
 }

}