1

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

我有一个变量:

class SomeClass
{
    private bool trueOrFalse = false;

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

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

4

3 回答 3

2

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

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

于 2012-04-30T12:57:48.267 回答
0

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

public class SomeClass
{
    public bool TrueOrFalse{ get; set; }      
}
于 2012-04-30T00:32:32.117 回答
-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; }
 }

}

于 2012-04-30T00:48:46.540 回答