Deserialisieren mehrere XML-Elemente mit dem gleichen Namen durch die XmlSerializer-Klasse in C#
Ich habe ein XML in der form
<BackupSchedule>
<AggressiveMode>0</AggressiveMode>
<ScheduleType>0</ScheduleType>
<ScheduledDay>0</ScheduledDay>
<ScheduledDay>1</ScheduledDay>
<ScheduledDay>0</ScheduledDay>
<ScheduledDay>0</ScheduledDay>
<ScheduledDay>0</ScheduledDay>
<ScheduledDay>0</ScheduledDay>
<ScheduledDay>0</ScheduledDay>
<WindowStart>480</WindowStart>
<WindowEnd>1020</WindowEnd>
<ScheduleInterval>0</ScheduleInterval>
</BackupSchedule>
Muss ich Deserialisieren es, den Inhalt ändern und dann speichern Sie es wieder. Ich bin vor problem bei der Lektüre ScheduledDay element.
Meine Klasse ist wie
public class BackupScheduleSettings
{
public BackupScheduleSettings()
{
ScheduledDay = new int[7];
}
.....
public int[] ScheduledDay { get; set; }
.....
}
Wenn ich jetzt laden von XML-Inhalten die richtigen Werte für ScheduledDay, meine Klasse array ist immer noch NULL.
Kann ich nicht ändern, den Inhalt/format von XML, da es die legacy-code. Ich will nicht von XDocument zu Lesen, der Wert ist, weil es ist eine große XML-und ich brauche, um es zu serialisieren wieder.
Gesucht hab ich viel, ohne jede Hilfe. Alle Ideen werden sehr geschätzt.
Dank...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wollen Sie nicht
XmlArrayItem
. Sie möchten das array von ints serialisiert werden ohne ein übergeordnetes element, das heißt, Sie sollten schmücken das array selbst mitXmlElement
. Denn Sie haben eine bestimmte Reihenfolge, die Sie verwenden möchten, werden dieOrder
Wert auf die XmlElement-Attribut. Hier ist die Klasse, entsprechend modifiziert:Hier ist die generierte xML:
Dekorieren Sie Ihr Eigentum:
Sollten Sie nur tun müssen, die folgenden für diese Arbeit:
Durch das hinzufügen dieses Attribut, jedes mal, wenn die ScheduledDay element gesehen wird, der durch die (de -) serializer wird es kennen, um es in dieses array.
XmlArrayItem
sagt der serializer zu setzen, werden die Elemente des Arrays als Kind-Elemente in einem übergeordneten element, repräsentiert das array. Das original-poster Voraussetzung ist, dass es keine übergeordnete element für das array.