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 - 只是作为默认值,有什么方法可以做到这一点吗?
对不起,这是我的错误。我有一个几个类实现的接口,所有字段都设置为私有。幸运的是,通过测试实现接口的特定对象,我将其字段设置为公共,这是它同时写入属性名称 + 属性值以及字段和字段值的原因。
因此,字段必须是私有的。
根据 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; }
}
}