Laden...

[gelöst] Wie Boolsches Attribut deserializieren

Erstellt von Spontifixus vor 13 Jahren Letzter Beitrag vor 13 Jahren 473 Views
Spontifixus Themenstarter:in
360 Beiträge seit 2005
vor 13 Jahren
[gelöst] Wie Boolsches Attribut deserializieren

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 😃

T
5 Beiträge seit 2010
vor 13 Jahren

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; }
        }
Spontifixus Themenstarter:in
360 Beiträge seit 2005
vor 13 Jahren

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 😃