Hallo zusammen,
bin ein bisschen ratlos, und hoffe ihr könnt mir weiterhelfen....
Ich habe eine xml Datei, die ich deserialisieren möchte.
Teilweise klappt das auch....also mit meiner Test Datei hat es funktioniert...und die sah so aus:
Meine Spec.cs, die die xml abbildet:
meine dazugehörige XML:
mein Code in C#:
Jo da funktioniert das alles recht schön, aber nun wollt ich das Ganze auf meine vorhandene XML anpasen und nix geht mehr Habe die xml schon sehr verkürzt, aber selbst da gibt's Probleme...:
Spec.cs, die die xml abbildet:
xml Datei:
Der Code zum Deserialisieren ist ja glich geblieben...
Auf jeden Fall bekomm ich in diesem Fall für mein Objekt "Spec setupXml" immer protocol = null raus...warum???
Vielleicht sieht von Euch jemand meinen Fehler...wäre echt sehr dankbar.
Gruß
bin ein bisschen ratlos, und hoffe ihr könnt mir weiterhelfen....
Ich habe eine xml Datei, die ich deserialisieren möchte.
Teilweise klappt das auch....also mit meiner Test Datei hat es funktioniert...und die sah so aus:
Meine Spec.cs, die die xml abbildet:
Code:
[Serializable] [XmlRoot("Spec")] public class Spec { [XmlElement("server")] public ServerXml server; } [XmlRoot("server")] public class ServerXml { [XmlAttribute("id")] public int id; [XmlElement("name")] public string name; [XmlElement("port")] public int port; [XmlElement("ip")] public string ip; [XmlElement("username")] public string userName; [XmlElement("pass")] public string password; }
meine dazugehörige XML:
Code:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE srv[ <!ATTLIST server id ID #IMPLIED> ]> <Spec> <server id="1"> <name>Server Nr. 1</name> <port>1234</port> <ip>127.0.0.1</ip> <username>testuser</username> <pass>testpass</pass> </server> </Spec>
Code:
XmlSerializer serializer = new XmlSerializer(typeof(Spec)); Spec setupXml = (Spec)serializer.Deserialize(File.OpenText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\Test.xml"));
Spec.cs, die die xml abbildet:
Code:
[Serializable] [XmlRoot("Spec")] public class Spec { public Protocol protocol; } [XmlRoot("Protocol")] public class Protocol { [XmlAttribute("id")] public int id; public Common common; } [XmlRoot("Common")] public class Common { [XmlElement("MaxResponseLen")] public int maxResponseLen; [XmlElement("PositiveResponseOffset")] public byte positiveResponseOffset; [XmlElement("NegativeResponseId")] public byte negativeResponseId; [XmlElement("ResponseHandler")] public String responseHandler; }
Code:
<Spec> <Protocol id="Testprotocol"> <Common> <MaxResponseLen>255</MaxResponseLen> <PostiveResponseOffset>0x40</PostiveResponseOffset> <NegativeResponseId>0x7f</NegativeResponseId> <ResponseHandler>rh_protocol.xml</ResponseHandler> </Common> </Protocol> </Spec>
Auf jeden Fall bekomm ich in diesem Fall für mein Objekt "Spec setupXml" immer protocol = null raus...warum???
Vielleicht sieht von Euch jemand meinen Fehler...wäre echt sehr dankbar.
Gruß