2011-02-11 11 views

回答

6

IIRC,「是」(只是有一個DataSet參數),但也「你不應該」;雖然.NET可能知道如何處理它,但Web服務旨在基於xml實體進行互操作;一個DataSet(甚至當序列化爲XML)是儘可能遠離你可以得到。海事組織最好寫一些代表你的模型的基本類,並將這些公開給web服務,因爲它們可以在xsd中正確表示以用於SOAP目的。

+0

+1並非所有技術上是可行的也是一個不錯的主意...... –

+0

+1即使我貼我的答案使用ReadXML的和方法中WriteXML,但我仍然會與你的答案使用單獨的類去傳遞數據。 – JPReddy

+0

@Marc Gravell:我怎麼能通過數據集從android到soap服務有任何setps? –

2

將DataSet傳遞給webservice並不是一個好主意。相反,使用DataSet的ReadXML或WriteXML方法將數據傳遞給webservice並在webservice端讀取它。

編輯:如果可能創建單獨的類作爲馬克Grawell說,如果你是不可行的(這是一個罕見的情況),那麼你可以使用上面的方法來傳遞數據比直接傳遞的DataSet更好的辦法。

1

Marc是正確的數據集。這可能是你可以做的最糟糕的設計原則之一。 但是,您不應該以您代表模型的方式構建數據合同。您構建的SOAP消息應該被定義爲消息。您不是通過線路發送對象,而是發送SOAP消息。然後,您可以使用由該消息封裝的其中一個對象模型,但不要將其作爲對象本身發送。

基於工作消息,您可以更好地控制諸如安全標題和faulths之類的內容。

http://msdn.microsoft.com/en-us/library/ms734675.aspx

+0

備註:以上主要涉及WCF; * vanilla * asp.net web-services的工具等功能要弱得多 –

+0

是的,這隻能使用像WCF這樣更強大的框架來完成。 –

相關問題