我正在嘗試以特定格式生成xml文檔。我想跳過序列化屬性取決於屬性的值。Xml序列化動態忽略
public class Parent
{
public Parent()
{
myChild = new Child();
myChild2 = new Child() { Value = "Value" };
}
public Child myChild { get; set; }
public Child myChild2 { get; set; }
}
public class Child
{
private bool _set;
public bool Set { get { return _set; } }
private string _value = "default";
[System.Xml.Serialization.XmlText()]
public string Value
{
get { return _value; }
set { _value = value; _set = true; }
}
}
System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(typeof(Parent));
x.Serialize(Console.Out, new Parent());
如果設置爲false,我想整個房地產不序列化,我得到的XML應該是
<Parent>
<myChild2>default</myChild2>
</Parent>
而不是
<Parent>
<myChild/>
<myChild2>default</myChild2>
</Parent>
有一些方法可以讓我做這乾淨地與IXmlSerializable或其他?
謝謝!
我有很多是所有類型的子性質的,我不希望有每一個ShouldSerialize。我可能將我的所有屬性設置爲null,在我序列化之前未設置.. – TrevDev
我發佈了一個答案,通過在序列化之前調用的方法將值動態設置爲null。您是否有更清晰的分配空值的想法? – TrevDev
@Thx不是真的... –