2010-05-14 78 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。如果您顯示代碼,我們將能夠更輕鬆地識別錯誤。