c# - 如何将可变数量的参数传递给网络服务

标签 c# web-services soap

我们正在尝试创建一个网络服务,我们计划将可变数量的变量传递给它。

这可以做到吗?

基本上我们不想传递所有可能的参数,而是希望只传递设置值并使用网络服务中设置的默认值。

这是我们要发送的 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>

这行得通还是我们应该换一种方式?

最佳答案

我会传入一个 xml 文档,而不是为此执行 concreate 函数。

您示例中的 Web 服务存在漏洞 - 消费者需要对这个接口(interface)和 Web 服务的内部实现了解得太多。

XML 文档,然后将其与 XSD 绑定(bind)。这样您就可以预先验证对网络服务的输入。

看看这些

IBM Developer ASP.NET Forum

我还建议使用它来测试网络服务及其免费 WSStudio

关于c# - 如何将可变数量的参数传递给网络服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34128/

相关文章:

web-services - 从 Tomcat 上运行的 CXF 网络服务获取 WSDL

c# - 使用FileHelperAsyncEngine崩溃无一异常(exception)

c# - 方法适用于模拟器但不适用于 Microsoft Surface 设备?

c# - 创建具有匿名类型的 Stack<T>

c# - WCF 服务客户端 : The content type text/html; charset=utf-8 of the response message does not match the content type of the binding

perl - 使用 SOAP::Lite 服务 stub

c# - 阻止我的应用程序进行 sql 注入(inject)?

c# - 我能否以编程方式覆盖客户端 app.config WCF 端点地址?

ssl - 使用 wsimport 创建 SOAP 客户端,但无法使其与 SSL 证书一起使用

php - 如何使用 PHP 从 Web 服务获取 XML 数据?