Ich sende XML an ein anderes Programm, das boolesche Flags als "Ja" oder "Nein" anstatt als "Wahr" oder "Falsch" erwartet.Wie kann ich XmlSerializer Bools als Ja/Nein zu codieren?
Ich habe eine Klasse definiert wie:
[XmlRoot()]
public class Foo {
public bool Bar { get; set; }
}
Als ich es serialisiert, sieht meine Ausgabe wie folgt:
<Foo><Bar>true</Bar></Foo>
Aber ich würde es dies sein mag:
<Foo><Bar>yes</Bar></Foo>
Kann ich dies zum Zeitpunkt der Serialisierung tun? Ich würde es vorziehen, nicht darauf zurückgreifen zu müssen:
[XmlRoot()]
public class Foo {
[XmlIgnore()]
public bool Bar { get; set; }
[XmlElement("Bar")]
public string BarXml { get { return (Bar) ? "yes" : "no"; } }
}
Bitte beachte, dass ich auch diese Daten wieder zu deserialize der Lage sein will.
Lovely, genau das, was ich gesucht habe. Vielen Dank. –
Sie könnte es tun wie das auch: public enum BoolEnum { [XmlEnum ("no")] Falsch = 0, [XmlEnum ("Ja")] Wahr = 1 } – Sauleil