Voici à quoi ressemble mon XML :
<FileExtensions>
<Text>
<Extension>602</Extension>
<Extension>ABW</Extension>
<Extension>ACL</Extension>
</Text>
<Script>
<Extension>AHK</Extension>
<Extension>APPLESCRIPT</Extension>
</Script>
</FileExtensions>
Ce sont les classes que je désérialise :
[XmlRoot("FileExtensions")]
public class FileExtensions
{
public FileExtensions()
{
Text = new List<Extensions>();
Script = new List<Extensions>();
}
[XmlElement("Text")]
public List<Extensions> Text;
[XmlElement("Script")]
public List<Extensions> Script;
}
public class Extensions
{
[XmlElement("Extension")]
public string name;
}
C'est comme ça que je désérialise :
FileExtensions extensions = new FileExtensions();
var deserializer = new System.Xml.Serialization.XmlSerializer(typeof(FileExtensions));
FileStream fs = new FileStream(filename, FileMode.Open);
XmlReader reader = new XmlTextReader(fs);
extensions = (FileExtensions)deserializer.Deserialize(reader);
Pour une raison quelconque, mes listes ne comportent qu'un seul élément chacune, qui est le premier à apparaître dans le fichier XML.