2016-04-07 9 views
0

私はこのトピックをよく理解するのは非常に難しいですが、これにはかなりの量の投稿があることがわかります。 、私はクラスにこれをマッピングするC#クラスへのXMLレスポンス文字列の逆シリアル化

<?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> 

私が読んだ文書やポストに基づいて、私はこれを行うにはどのようには考えているか、どのようなクラスがすべき:私はこのようなXML文字列を持っていますのように見える。助けて?私は、

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

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

私はクラスがどのように見えるか分からない:ここでは

「応答」 がクラスに文字列を回し... XML文字列です....私がこれまで持っているものですオンラインツールを使ってその応答をC#クラスに変換しようとしましたが、何も動作しないようです。では、このレスポンスのクラスはどのように見えますか?どのように文字列をこのクラスにすることができますか?

+0

xsdやhttp://xmltocsharp.azurewebsites.net/ – Camo

+0

のようないくつかのツールを使うことができます。クラス –

答えて

2

xsd.exe - google it - xml(構造を推測する)またはxsdファイルに基づいて.netクラス構造を生成するために使用できる小さなユーティリティです。

これを使用すると、デシリアライゼーションコードで実装できるクラスを生成できます。

+0

でうまくいきました。ユーティリティはWindows 10上でどこに住んでいますか? –

+0

それはC:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.6 Tools \ –

+0

のようなものになるように.Netフレームワークでパッケージ化されています。それはちょうど上に見える –

0

XMLを逆シリアル化するクラスを生成するだけであれば、このオンラインツールXml2CSharpを試すことができます。そのショートカットが機能するかもしれません。

そうしないと、XMLからスキーマを生成し、スキーマからクラスを生成する必要があります。 This articleは、ステップを明確に記述しています。