Comment désérialiser xml pour objecter

  Name1 Desc1   Name2 Desc2   

J’ai ce XML, Comment dois-je modéliser la classe afin de pouvoir la désérialiser en utilisant l’object XmlSerializer ?

Vos cours devraient aimer comme ça

 [XmlRoot("StepList")] public class StepList { [XmlElement("Step")] public List Steps { get; set; } } public class Step { [XmlElement("Name")] public ssortingng Name { get; set; } [XmlElement("Desc")] public ssortingng Desc { get; set; } } 

Voici mon code de test.

 ssortingng testData = @"  Name1 Desc1   Name2 Desc2  "; XmlSerializer serializer = new XmlSerializer(typeof(StepList)); using (TextReader reader = new SsortingngReader(testData)) { StepList result = (StepList) serializer.Deserialize(reader); } 

Si vous voulez lire un fichier texte, vous devez charger le fichier dans un fichier FileStream et le désérialiser.

 using (FileStream fileStream = new FileStream("",FileMode.Open)) { StepList result = (StepList) serializer.Deserialize(fileStream ); } 

Les commentaires ci-dessus sont corrects. Vous manquez les décorateurs. Si vous voulez un désérialiseur générique, vous pouvez l’utiliser.

  public static T DeserializeXMLFileToObject(ssortingng XmlFilename) { T returnObject = default(T); if (ssortingng.IsNullOrEmpty(XmlFilename)) return default(T); try { StreamReader xmlStream = new StreamReader(XmlFilename); XmlSerializer serializer = new XmlSerializer(typeof(T)); returnObject = (T)serializer.Deserialize(xmlStream); } catch (Exception ex) { ExceptionLogger.WriteExceptionToConsole(ex, DateTime.Now); } return returnObject; } 

Alors tu appellerais ça comme ça:

 MyObjType MyObj = DeserializeXMLFileToObject(FilePath);