c# - 序列化从 WebService 到对象的 XML 响应 (C#)

标签 c# xml xml-deserialization

我正在调用 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>

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

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; }
}

如您所见,我忽略了一些返回的元素(flash、replace 等)

将返回的 XML 序列化为该对象的最佳方式是什么?

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

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

最佳答案

只要将适当的属性添加到类的字段中,就可以很好地使用 XmlSerializerCheck these out for an example of some .毫无疑问,您在最初几次使用它时会遇到错误,但请坚持使用它,因为一旦您弄明白了,它就是一个很棒的工具。

编辑:

Here is a better place to find all of the available attributes .在列表中查找以 Xml 开头并以 Attribute 结尾的任何内容。您会想要了解所有这些。

关于c# - 序列化从 WebService 到对象的 XML 响应 (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2833769/

相关文章:

c# - 最小起订量测试方法 1 是否在同一类中调用第二个方法 2

c# - python: c# 二进制日期时间编码

c# - 删除 InkCanvas 的子项

python - 使用 xml.dom.minidom 中的 parseString 解析 XML 文件效率低下?

c# - c#中的条件Xml反序列化

c# - 使用 .NET 从高级 RapidShare 帐户下载文件

python - XPath 语法错误 : invalid predicate

Android:键入时保持 TextInputEditText 在 View 中

c# - 当我只知道祖先类的类型时,如何反序列化 XML?

c# - 如何在 C# 对象中反序列化这个嵌套的 xml