我有一個類,它的對象必須序列化/反序列化依賴於一個布爾值有條件序列化/反序列化屬性
[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;}
}
}
這是應該如何工作的屬性:
如果我創建當序列化對象(使用XMLSerialize)時,必須將myField序列化(包含在XML消息中),並將myFieldSerializes設置爲'true'。如果設置爲'假',則應該忽略。
當反序列化(使用XMLDeserialize)時,布爾myFieldSerializes應告訴我myField是否已反序列化(換句話說,它存在於XML文件中)。
實施此行爲的方法是什麼?
謝謝! :)
我不完全清楚你想如何工作,但[XmlAttributre.XmlIgnore]的示例代碼(https://msdn.microsoft.com/en-us/library/system.xml.serialization。 xmlattributes.xmlignore(v = vs.110).aspx)可能是你想要的。 –
查看相似回答http://stackoverflow.com/a/31015970/881798 – vendettamit