Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将XML响应从WebService序列化到对象(C#)_C#_Xml_Xml Deserialization - Fatal编程技术网

将XML响应从WebService序列化到对象(C#)

将XML响应从WebService序列化到对象(C#),c#,xml,xml-deserialization,C#,Xml,Xml Deserialization,我正在呼叫REST Web服务 响应如下所示: <?xml version=\"1.0\" encoding=\"utf-8\"?> <data> <status>1</status> <message>OK</message> <results> <result> <account>12345</account> <to>

我正在呼叫REST Web服务

响应如下所示:

<?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>
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; }
}
public class SMSMessage
{
    public string To { get; set; }
    public string From { get; set; }
    public string Message { get; set; }
}
SMSMessage如下所示:

<?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>
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; }
}
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,然后以这种方式进行序列化,但有没有更好的方法?

只要向类的字段添加适当的属性,就可以使用
XmlSerializer
。毫无疑问,在使用它的最初几次中,您会遇到错误,但请坚持使用它,因为一旦您找到它,它就是一个很棒的工具

编辑:


。在列表中查找以Xml开头、以属性结尾的任何内容。您需要了解所有这些内容。

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