2008-08-29 132 views
3

我們正在嘗試創建一個Web服務,我們計劃將可變數量的變量傳遞給它。如何將可變數量的參數傳遞給Web服務

可以這樣做嗎?

基本上不是傳遞所有可能的參數,我們只希望傳遞設置值並使用web服務中設置的默認值。

以下是我們希望發送的XML示例,我們將根據所需的回報發送未知數量的函數。

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <WebMethod xmlns="http://tempuri.org/"> 
     <domains> 
     <function1> 
     <title>Some Title</title> 
     <type>25</type> 
     </function1> 
    <function2 /> 
    <function3> 
     <param>13</param> 
    </function3> 
     </domains> 
    </WebMethod> 
    </soap:Body> 
</soap:Envelope> 

請問這項工作還是我們應該採取不同的方式?

回答

4

我會傳入一個XML文檔,而不是做這個concreate函數。

您示例中的webservice漏洞 - 消費者需要知道這個接口的過多以及web服務在內部的實現。

XML文檔,然後用XSD綁定。這樣你可以預先驗證web服務的輸入。

看看這些

IBM Developer ASP.NET Forum

我也建議使用此測試web服務和免費 WSStudio

0

您可以簡單地傳遞一個可變長度的數組作爲參數。

0

如果你不喜歡數組的想法(這不是對Konrad的回答 - 你可能有不同的參數類型),你可以傳遞複雜的對象(即你自己創建的對象)。缺點是你不能使用ASMX頁面進行測試,但需要在代碼中完成所有工作(這並不是一件壞事,尤其是在習慣了的情況下)。

相關問題