2

我正在调用 REST 网络服务。

响应看起来像这样:

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<data>
  <status>1</status>
  <message>OK</message>
  <results>
    <result>
      <account>12345</account>
      <to>012345678</to>
      <from>054321</from>
      <message>Testing</message>
      <flash></flash>
      <replace></replace>
      <report></report>
      <concat></concat>
      <id>f8d3eea1cbf6771a4bb02af3fb15253e</id>
    </result>
  </results>
</data>

我有一个名为“SMSSendingResponse”的类,如下所示:

public class SMSSendingResponse
{
    public string AccountNumber { get; set; }
    public string Status { get; set; }
    public string Message { get; set; }
    public string ResponseID { get; set; }
    public SMSMessage SMSMessage { get; set; }
}

SMSMessage 看起来像这样:

public class SMSMessage
{
    public string To { get; set; }
    public string From { get; set; }
    public string Message { get; set; }
}

如您所见,我忽略了一些返回的元素(闪存、替换等)

将返回的 XML 序列化到该对象中的最佳方法是什么?

我尝试使用 XmlSerializer,但这引发了错误......我猜是因为我没有先使用 XmlSerializer 进行序列化。

如果是 Json,我会使用 NewtonSoft.Json 库...虽然我想我可以将 xml 转换为 json,然后以这种方式序列化,有没有更好的方法?

4

2 回答 2

2

XmlSerializer只要将适当的属性添加到类的字段中,就 可以正常使用。查看这些以获取一些示例。毫无疑问,最初几次使用它时会遇到错误,但要坚持下去,因为一旦你弄清楚了,它就是一个很棒的工具。

编辑:

这里是查找所有可用属性的更好地方。查看列表以查找以 Xml 开头并以 Attribute 结尾的任何内容。你会想知道他们所有人。

于 2010-05-14T11:43:41.723 回答
0

您可以使用 xsd.exe 从 xml 文件中提取架构并生成相应的 c# 类。您可以使用生成的类对 xml 进行序列化和反序列化。如果您显示代码,我们将能够更轻松地识别错误。

于 2010-05-14T11:47:09.800 回答