Guten Tag,
Ich versuche gerade eine einen XML string der eine Version beinhaltet zu deserialisieren. Erstaunlicherweise funktioniert das nicht, d.h. aus der Version 1.0.0 macht der XML Serializer 0.0.
Code der das Problem reproduziert
Hat zufällig jemand eine Idee wie ich die Version richtig deserialisieren kann?
Edit:
Bei genauerer Betrachtung des Problems ist es eigentlich klar. Der Serializer muss ja die einzelnenen Eigenschaften (Major, Minor, Build, Revision) einzeln setzten können. Ohne einen Konverter wird das schwer. Ich hab mir jetzt mit einer
Ich versuche gerade eine einen XML string der eine Version beinhaltet zu deserialisieren. Erstaunlicherweise funktioniert das nicht, d.h. aus der Version 1.0.0 macht der XML Serializer 0.0.
C#-Quellcode
- using System;
- using System.IO;
- using System.Xml.Serialization;
- namespace VersionDeserialization
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- string xml = "<?xml version=\"1.0\"?><API><Version>1.0.0</Version></API>";
- var serializer = new XmlSerializer(typeof(VersionWrapper));
- using (TextReader reader = new StringReader(xml))
- {
- var versionWrapper = serializer.Deserialize(reader) as VersionWrapper;
- Console.WriteLine($"Version: {versionWrapper?.Version.ToString() ?? "n/a"}"); // Version: 0.0
- }
- Console.ReadKey();
- }
- }
- [XmlRoot("API")]
- public class VersionWrapper
- {
- [XmlElement("Version")]
- public Version Version { get; set; }
- }
- }
Hat zufällig jemand eine Idee wie ich die Version richtig deserialisieren kann?
Edit:
Bei genauerer Betrachtung des Problems ist es eigentlich klar. Der Serializer muss ja die einzelnenen Eigenschaften (Major, Minor, Build, Revision) einzeln setzten können. Ohne einen Konverter wird das schwer. Ich hab mir jetzt mit einer
VersionEx
Klasse beholfen. Die implementiert das IXmlSerializable
Interface und hat somit zugriff auf den XmlReader.Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Fakiz“ ()