je un fichier XML à la recherche un peu comme ceci:La mise en œuvre IXmlSerializable sur un objet de collection
<xml>
<A>value</A>
<B>value</B>
<listitems>
<item>
<C>value</C>
<D>value</D>
</item>
</listitems>
</xml>
et moi avons deux objets représentant ce xml:
class XmlObject
{
public string A { get; set; }
public string B { get; set; }
List<Item> listitems { get; set; }
}
class Item : IXmlSerializable
{
public string C { get; set; }
public string D { get; set; }
//Implemented IXmlSerializeable read/write
public void ReadXml(System.Xml.XmlReader reader)
{
this.C = reader.ReadElementString();
this.D = reader.ReadElementString();
}
public void WriteXml(System.Xml.XmlWriter writer)
{
writer.WriteElementString("C", this.C);
writer.WriteElementString("D", this.D);
}
}
J'utilise le XmlSerializer pour sérialiser/désérialiser le XmlObject dans le fichier. Le problème est que lorsque j'ai implémenté les fonctions IXmlSerializable personnalisées sur mon article "sous-objet", je n'ai toujours qu'un seul élément (le premier) dans ma collection XmlObject.listitems lors de la désérialisation du fichier. Si je supprime le: IXmlSerializable tout fonctionne comme prévu.
Qu'est-ce que je fais de mal?
Edit: J'ai implémenté IXmlSerializable.GetSchema et j'ai besoin d'utiliser IXmlSerializable sur mon "child-object" pour faire une transformation de valeur personnalisée.
Merci beaucoup. –