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);