XMLSerializer anlegen des Knotens erzwingen obwohl string leer



  • Hallo,

    ich benutze den XMLSerializer aus System.XML.Serialization.
    Wenn ich dieses struct serialisiere wird leider kein Knoten für name angelegt, wenn dieser leer ist. Gibt es ein Attribut, das ich noch nicht gefunden habe?

    public struct Person
    {
       public string Name;
    }
    


  • Dein Problem ist ,dass "Name" nicht leer, sondern null ist.
    Drei Möglichkeiten:
    1. Struct durch Klasse ersetzen und

    Name = string.Empty;
    

    im Konstruktor setzen.
    2. Das Feld "Name" private deklarieren und eine Property hinzufügen, die statt null string.Empty zurueckgibt (Oder das Feld public lassen, aber mit XmlIgnore attribut versehen und Property hinzufügen).
    3. Vor dem Serialisieren selber auf null prüfen und string.Empty setzen.

    Mir persönlich gefällt Lösung 2 am besten, da in meinem Code Felder sowieso immer private sind und nur über Properties darauf zugegriffen wird. (Ist aber Ansichtssache).


Anmelden zum Antworten