2008-08-29 143 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页面进行测试,但需要在代码中完成所有工作(这并不是一件坏事,尤其是在习惯了的情况下)。

相关问题