Désérialiser plusieurs éléments XML avec le même nom de classe XmlSerializer en C#
J'ai un XML sous la forme
<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>
J'ai besoin de désérialiser, modifier son contenu et de le sauver de nouveau. Je suis confronté à un problème de lecture de ScheduledDay élément.
Ma classe est comme
public class BackupScheduleSettings
{
public BackupScheduleSettings()
{
ScheduledDay = new int[7];
}
.....
public int[] ScheduledDay { get; set; }
.....
}
Maintenant, lorsque je charge le contenu XML qui a de bonnes valeurs pour ScheduledDay, ma classe array est toujours NULL.
Je ne peux pas modifier le contenu ou le format de XML puisque c'est le code de legs. Je ne veux pas utiliser XDocument la lecture de la valeur, car il est un grand XML et j'ai besoin de sérialiser à nouveau.
J'ai beaucoup cherché sans aucune aide. Toutes les idées seront très appréciés.
Merci...
OriginalL'auteur shobhit | 2011-03-10
Vous devez vous connecter pour publier un commentaire.
Vous ne voulez pas
XmlArrayItem
. Vous souhaitez que le tableau d'entiers à être sérialisé, sans un parent de l'élément, ce qui signifie que vous devez décorer le tableau lui-même avecXmlElement
. Parce que vous avez un ordre particulier, vous souhaitez utiliser lesOrder
valeur sur le XmlElement attribut. Voici la classe, modifiés en conséquence:Voici le code xML généré:
OriginalL'auteur Cheeso
Décorer votre propriété:
OriginalL'auteur Aliostad
Il devrait faire ce qui suit pour que cela fonctionne:
Par l'ajout de cet attribut, chaque fois que le ScheduledDay élément est perçu par l' (de)sérialiseur saura ajouter à ce tableau.
XmlArrayItem
dit le sérialiseur pour mettre les éléments de la matrice de l'enfant-éléments à l'intérieur d'un parent de l'élément représentant la matrice. L'affiche originale de l'exigence est qu'il n'y a pas parent de l'élément de la matrice.Vous avez raison de type de la part de mes XmlElement est correct.
OriginalL'auteur Josh M.