将XML响应从WebService序列化到对象(C#)
我正在呼叫REST Web服务 响应如下所示:将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>
<?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。如果您显示代码,我们将能够更容易地识别错误