2016-04-07 22 views
0

Ich weiß, es gab eine gute Anzahl von Beiträgen zu diesem Thema, obwohl ich dieses Thema von .NET sehr schwer zu verstehen. Ich habe eine XML-Zeichenfolge, die wie folgt aussieht:Deserialize XML Response String zu C# Klasse

<?xml version="1.0" encoding="UTF-8"?> 
<result command="searchhotels" tID="1460064669000001" ip="99.51.186.120" date="2016-04-07 21:31:16" version="2.0" elapsedTime="7.1676669120789"> 
    <currencyShort>USD</currencyShort> 
    <hotels count="2"> 
     <hotel runno="0" preferred="no" cityname="DUBAI" order="3" hotelid="275975"> 
      <from>292.767 
       <formatted>292.77</formatted> 
      </from> 
      <availability>available</availability> 
     </hotel> 
     <hotel runno="1" preferred="yes" cityname="DUBAI" order="3" hotelid="31084"> 
      <from>278.7142 
       <formatted>278.71</formatted> 
      </from> 
      <availability>available</availability> 
     </hotel> 
    </hotels> 
    <successful>TRUE</successful> 
</result> 

ich dies zu einer Klasse zugeordnet werden soll, auf der Grundlage der Dokumentation und Beiträge, die ich gelesen habe, ich habe keine Ahnung, wie dies zu tun oder, was die Klasse sollte aussehen wie. Hilfe? Hier ist, was ich bisher ....

„Antwort“ ist die XML-Zeichenfolge ... drehen String in Klasse:

 XmlSerializer serializer = new XmlSerializer(typeof(TResponse)); 
     using (StringReader reader = new StringReader(response)) 
     { 

      TResponse deserialized = (TResponse)serializer.Deserialize(reader); 
      return deserialized; 
     } 

Ich weiß nicht, was die Klasse aussehen sollte, ich habe versucht, diese Antwort in einen C# -Klasse mit Online-Tools zu verwandeln, aber nichts scheint zu funktionieren. Wie sollte die Klasse für diese Antwort aussehen? Und wie kann ich die Saite in diese Klasse verwandeln?

+0

Sie können entweder xsd oder einige Tools wie http://xmltocsharp.azurewebsites.net/ – Camo

+0

nice, die für die Klasse –

Antwort

2

Werfen Sie einen Blick auf xsd.exe - google it - es ist ein kleines Dienstprogramm, das Sie verwenden können, um .net Klassenstrukturen basierend auf XML (es wird Struktur abzuleiten) oder Xsd-Dateien zu generieren.

Mit diesem können Sie eine Klasse generieren, die Sie in Ihrem Deserialisierungscode auffüllen können.

+0

cool funktioniert, wo funktioniert das Dienstprogramm auf Windows 10? –

+0

Es ist mit Ihrem .Net-Framework verpackt, so dass es etwas wie C: \ Programme (x86) \ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.6 Tools \ –

+0

nett sein wird, irgendwelche Gedanken über die String-Deserialisierung? sieht es richtig aus über –

0

Wenn Sie nur Klassen generieren müssen, um Ihr XML zu deserialisieren, können Sie dieses Online-Tool Xml2CSharp ausprobieren. Diese Verknüpfung könnte funktionieren.

Andernfalls müssen Sie ein Schema aus Ihrem XML generieren und dann Klassen aus dem Schema generieren. This article beschreibt die Schritte deutlich.