Deserialisieren mehrerer XML-Elemente mit demselben Namen über die XmlSerializer-Klasse in C #

8

Ich habe ein XML in der Form

%Vor%

Ich muss es deserialisieren, seinen Inhalt ändern und es dann speichern. Ich habe ein Problem beim Lesen des PlanedDay-Elements. Meine Klasse ist wie

%Vor%

Wenn ich nun XML-Inhalt mit richtigen Werten für ScheduledDay lade, ist mein Klassenarray immer noch NULL.

Ich kann den Inhalt / das Format von XML nicht ändern, da es sich um Legacy-Code handelt. Ich möchte XDocument nicht verwenden, um den Wert zu lesen, da es sich um ein großes XML handelt, und ich muss es erneut serialisieren.

Ich habe viel ohne Hilfe gesucht. Alle Ideen werden sehr geschätzt.

Danke ...

    
shobhit 10.03.2011, 12:58
quelle

3 Antworten

15

Sie möchten nicht XmlArrayItem . Sie möchten, dass das Array von Ints ohne ein Elternelement serialisiert wird, was bedeutet, dass Sie das Array selbst mit XmlElement dekorieren sollten. Da Sie eine bestimmte Reihenfolge haben, möchten Sie den Wert Order für das XmlElement-Attribut verwenden. Hier ist die Klasse, entsprechend geändert:

%Vor%

Hier ist die generierte xML:

%Vor%     
Cheeso 10.03.2011, 13:10
quelle
13

Dekorieren Sie Ihre Immobilie:

%Vor%     
Aliostad 10.03.2011 13:06
quelle
1

Sie sollten nur Folgendes tun, damit dies funktioniert:

%Vor%

Durch das Hinzufügen dieses Attributs weiß jedesmal, wann das Element ScheduledDay vom (De) Serializer erkannt wird, dass es diesem Array hinzugefügt wird.

    
Josh M. 10.03.2011 13:04
quelle