2012-02-01 122 views
0

有問題的Web服務必須在SOAP XML中返回存儲過程的結果。如何從WCF Web服務返回XML?

我可以從Web服務返回任何對象沒問題,我甚至很熟悉從.asmx服務中序列化JSON,但我完全背離了從Web服務返回XML的概念,他的工作是檢索來自存儲過程的結果。這對我來說非常重要,所以任何幫助都非常感激。

謝謝。

+0

MSDN教程... http://msdn.microsoft.com/en-us/netframework/first-steps-with-wcf – Lloyd 2012-02-01 15:20:12

+0

這可能也有幫助http://stackoverflow.com/questions/8730940/wcf返回流或字符串 – kenny 2012-02-01 15:24:59

+0

我也可以推薦這本書http://www.amazon.com/RESTful-NET-Build-Consume-Services/dp/0596519206/ref=sr_1_1?ie=UTF8&qid=1328109932&sr=8 -1 – kenny 2012-02-01 15:26:03

回答

1

嘗試返回一個XmlNode

[ServiceContract] 
public interface IMyService 
{ 
    ... 
    [OperationContract] 
    XmlNode MyMethod(...); 

    ... 
} 
+0

非常感謝Joe,感謝您的回覆。所以假設這個服務的工作是返回一個存儲過程的結果 - 這個從sql結果到XML的「轉換」怎麼會發生?再次感謝。 – SkonJeet 2012-02-01 15:25:45

+1

@SkonJeet - 有很多選擇。最簡單的方法是讓OperationContract返回一個強類型的結果(例如'MyType'或'IList '),並讓框架進行序列化。或者,您可以使用.NET框架中的Xml類自己生成XML,使用'IDataReader'返回的數據。 – Joe 2012-02-01 15:37:23

+0

再次感謝您的時間伴侶。所以你會說,對於我來說,編寫一個將存儲過程的結果提取到sqlreader中的Web服務是可以接受的(正常情況下),然後使用XML類將所有這些轉換爲xml?還是有更多'優雅'的方式來做到這一點? – SkonJeet 2012-02-01 15:41:52