我知道有很多关于这方面的帖子,但我发现.NET的这个主题很难理解。我有一个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>
我想根据我阅读的文档和帖子将其映射到一个类,我不知道如何执行此操作或类应该是什么样的。救命?这是我到目前为止所拥有的......
&#34;响应&#34;是xml字符串...... 将字符串转换为类:
XmlSerializer serializer = new XmlSerializer(typeof(TResponse));
using (StringReader reader = new StringReader(response))
{
TResponse deserialized = (TResponse)serializer.Deserialize(reader);
return deserialized;
}
我不知道这个类应该是什么样子,我已经尝试使用在线工具将该响应转换为C#类,但似乎没有任何效果。那么这个响应的类应该是什么样的呢?如何将字符串转换为此类?
答案 0 :(得分:2)
看看xsd.exe - google it - 它是一个小实用程序,你可以使用它来生成基于xml(它将推断结构)或xsd文件的.net类结构。
有了它,您可以生成一个可以在反序列化代码中填充的类。
答案 1 :(得分:0)
如果您只需要生成用于反序列化XML的类,则可以尝试使用此在线工具Xml2CSharp。那条捷径可能会奏效。
否则,您需要从XML生成模式,然后从模式生成类。 This article清楚地描述了这些步骤。