【发布时间】:2016-03-23 04:49:36
【问题描述】:
我有一个类,其对象必须根据布尔值序列化/反序列化属性
[System.SerializableAttribute()]
public class Foo
{
private string myField;
private bool myFieldSerializes;
//Parameterless construction for serializing purposes
public Foo() { }
public Foo(string myField, bool myFieldSerializes)
{
this.myField = myField;
this.myFieldSerializes = myFieldSerializes;
}
public string MyField
{
get {return this.myField;}
set {this.myField = value;}
}
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool MyFieldSerializes
{
get {return this.myFieldSerialzes;}
set {this.myFieldSerialzes = value;}
}
}
它应该是这样工作的:
如果我创建一个实例并将 myFieldSerializes 设置为“true”,则在序列化对象时(使用 XMLSerialize),myField 必须被序列化(包含在 XML 消息中)。如果设置为“false”,则应忽略。
反序列化时(使用 XMLDeserialize),布尔值 myFieldSerializes 应该告诉我 myField 是否已反序列化(换句话说,它存在于 XML 文件中)。
实现这种行为的方法是什么?
谢谢! :)
【问题讨论】:
-
我不完全清楚你希望它如何工作,但XmlAttributre.XmlIgnore 的示例代码可能是你想要的。
标签: c# xml serialization