Hallo zusammen,
ich habe eine XML-Datenstruktur, die ich deserialisieren möchte. Darin z.B. folgendes Item:
<TestItem IstIrgendwas="True" />
Dazu hatte ich folgenden Code implementiert:
[XmlAttribute]
public bool IstIrgendwas{ get; set; }
Das funktioniert so natürlich nicht, da der Wert "True" ein string ist. Kann ich das eleganter lösen als eine String- und eine boolsche Property zu definieren, so dass der String "True" direkt in einen boolschen Wert deserialisiert wird?
Wenn ich dem XmlAttribute-Attribute den Typ System.Bool mitgebe funktioniert das auch nicht wie gewünscht...
Viele Grüße,
Markus 😃
Du hast doch sicher ein root Element in deinem XML Dokument, folgendes sollte dann funktionieren:
public class TestItem
{
[XmlAttribute]
public bool IstIrgendwas { get; set; }
}
public class RootElement
{
[XmlElement]
public TestItem TestItem { get; set; }
}
Moin,
Danke für die Antwort. Sicherlich habe ich ein RootItem - die in meinem vorangegangenen Beitrag sind nur ein kleiner Ausschnitt aus dem XML- oder dem dazugehörigen C#-Code. Es geht nicht darum wie deserialisiere ich überhaupt irgendwas - sondern wie deserialisiere ich ein bool...
Aber nach einer Nacht drüber schlafen bin ich selbst drauf gekommen.
<TestItem IstIrgendwas="True" />
Diese Schreibweise funktioniert nicht, denn der Serializer arbeitet Case-Sensitiv.
<TestItem IstIrgendwas="true" />
Diese Schreibweise wird anstandslos deserialisiert...
Viele Grüße,
Markus 😃