使用XmlSerialization将对象序列化为xml时,是否可以忽略常规变量?
我有一个变量:
class SomeClass
{
private bool trueOrFalse = false;
public bool TrueOrFalse
{
get { return trueOrFalse; }
set { trueOrFalse = value; }
}
}
序列化时,我在XML文件中得到两个“元素” - 但它们是相同的。因此,对于更简洁的XML文件,我希望以某种方式包含属性,而不必使用XmlIgnore - 只是默认情况下,以任何方式执行此操作?
答案 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; }
}
}