Ich habe mit einem Java-basierten REST-Webservice von Drittanbietern gearbeitet, der ein Array von xmlNodes zurückgibt.
Der xmlNode [] repräsentiert ein Objekt und ich versuche herauszufinden, wie der xmlNode [] im Objekt am besten deserialisiert wird. ist es, zuerst ein xmlDocument und das Deserialize?
aufzubauenDanke
Wenn Sie die WCF Rest Starter Kit-Vorschau installiert haben, gibt es einen ordentlichen Trick:
Dadurch wird Ihr in der Zwischenablage enthaltenes XML in Ihr Projekt als C # -Klasse eingefügt, die genau dieses XML deserialisieren kann. Ziemlich geschickt!
Siehe diese Blogposts dazu:
Das sollte Ihnen viel Tipparbeit ersparen und das Leben viel einfacher machen!
UPDATE:
OK, Sie haben Ihre Klassen bereits aus dem XML generiert, das Sie zurück erhalten. Jetzt müssen Sie ein XmlNode
in Ihre Klasse konvertieren.
Sie müssen so etwas tun:
%Vor% Sie müssen die XML-Repräsentation (Eigenschaft .OuterXml
) von XmlNode
in einen Stream (hier ein MemoryStream
) schreiben und dann das XmlSerializer
verwenden, um das Objekt aus diesem Stream zu serialisieren.
Sie können es mit der generischen Methode tun und
aufrufen %Vor% oder Sie könnten diesen Code sogar in eine Erweiterungsmethode für die Klasse XmlNode
umwandeln, so dass Sie schreiben könnten:
Marc
Vielleicht ist das zu spät, um hier zu antworten, aber es wird anderen helfen:
Hier ist die Lösung, die Sie Deserialize
vom XML-Knoten erreichen können.
Laden Sie zuerst den XML-Code in XmlDocument Object
und suchen Sie dann den übergeordneten Knoten, den Sie deserialisieren möchten, so wie ich SystemInfo -Objektknoten aus dem gesamten XML-Dokument haben möchte.
Sobald Sie feststellen, dass Sie ein XmlSerializer
-Objekt mit dem spezifischen Klassentyp erstellen, den Sie wünschen.
Übergeben Sie jetzt einfach new XmlNodeReader(xmlNode)
an die Methode Deserialize . Sie erhalten die Objekte in einem Klassenobjekt, genau wie ich syso
object mit XML-Werten gefüllt habe.
Happy Coding:)
Der einfachste Weg dazu wäre, die eingebaute System.Xml.Serialization.XmlSerializer-Klasse in .NET zu verwenden. Eine Google-Suche auf XmlSerializer wird eine Menge Tutorials bieten, die Sie verwenden können, um ein Tutorial zu finden, das für Sie funktioniert.
Tags und Links c# serialization xmlnode