Я пытаюсь сгенерировать 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());
Если Set имеет значение false, я хочу, чтобы все свойство не было сериализовано, мой результирующий xml должен быть
<Parent>
<myChild2>default</myChild2>
</Parent>
Вместо
<Parent>
<myChild/>
<myChild2>default</myChild2>
</Parent>
Есть ли какой-нибудь способ, которым я могу сделать это чисто с IXmlSerializable или чем-то еще?
Спасибо!