J'ai une classe qui est héritée de List<T>
et a aussi des propriétés, comme ceci:Comment sérialiser tableau XML et propriétés de classe en utilisant C# sérialisation XML
[Serializable]
public class DropList : List<DropItem>
{
[XmlAttribute]
public int FinalDropCount{get; set;}
}
Cette classe est sérialisé en XML dans le cadre d'un plus grande classe:
[Serializable]
public class Location
{
public DropList DropList{get; set;}
....
}
Le problème est, serializer voit ma liste comme une collection; les contians XML résultants ne listent que les éléments, mais pas les propriétés de la classe (FinalDropCount dans ce cas). Ceci est un exemple de XML en sortie:
<Location xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DropList>
<DropItem ProtoId="3" Count="0" Minimum="0" Maximum="0" />
<DropItem ProtoId="4" Count="0" Minimum="0" Maximum="0" />
</DropList>
....
</Location>
Est-il possible de sauver les deux contenu de la liste et les propriétés sans avoir recours à la mise en œuvre IXmlSerializable
à la main?
Pourquoi voulez-vous sérialiser les propriétés? Habituellement, ce qui vous intéresse, ce sont les données contenues dans la classe, c'est-à-dire les valeurs actuelles de toutes les variables. Les propriétés sont juste un moyen d'accéder à ces valeurs. Pouvez-vous clarifier? – Roast
Ces propriétés font partie des données. Pensez-y de cette façon: DropList est une liste de DropItems avec des données attachées, comme FinalDropCount. Donc, je dois sauvegarder et charger toutes les données - liste et propriétés. – Nevermind