Próbuję wygenerować dokument xml w określonym formacie. Chciałbym pominąć serializowanie właściwości w zależności od wartości właściwości.Serializacja XML Dynamic Ignore
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());
Jeśli ustawione jest fałszywa, chcę cała nieruchomość nie być w odcinkach mój wynikające xml powinien być
<Parent>
<myChild2>default</myChild2>
</Parent>
Zamiast
<Parent>
<myChild/>
<myChild2>default</myChild2>
</Parent>
Czy jest jakiś sposób mogę zrobić Czy to czysto z IXmlSerializable czy cokolwiek innego?
Dzięki!
Mam wiele właściwości, które wszystkie są typu Dziecka, wolałbym nie mieć ShouldSerialize dla każdego jednego. Mogę ustawić wszystkie moje właściwości na null, które nie są ustawione przed serializacją .. – TrevDev
Wysłałem odpowiedź na dynamiczne ustawienie wartości na null za pomocą metody, która byłaby wywoływana przed serializacją. Czy masz lepszy pomysł na przypisanie wartości pustej? – TrevDev
@Thx not really ... –