2010-05-14 109 views
2

我正在调用REST Web服务。将WebService的XML响应序列化为对象(C#)

响应看起来是这样的:

<?xml version=\"1.0\" encoding=\"utf-8\"?> 
<data> 
    <status>1</status> 
    <message>OK</message> 
    <results> 
    <result> 
     <account>12345</account> 
     <to></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; } 
} 

正如你所看到的,我忽略了一些返回的元素(flash,替换等)。

将我返回的XML序列化到此对象中的最佳方式是什么?

我试过使用XmlSerializer,但是这引发了一个错误......我想因为我没有使用XmlSerializer首先序列化。

如果是JSON,我会使用NewtonSoft.Json库... 虽然我想我可能转换 XML到JSON,然后序列化的方式,有没有更好的办法?

回答

0

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