文章目录

第七十七章 方法关键字 - SoapBindingStyle

指定此方法用作web方法时使用的绑定样式或SOAP调用机制。仅适用于定义为web服务web客户端的类。

用法

若要重写方法使用的默认绑定样式(当它用作web方法时),请使用以下语法:

Method name(formal_spec) As returnclass [ WebMethod, SoapBindingStyle = soapbindingstyle ]  
{    //implementation }

其中soapbindingstyle是下列之一:

  • document文档(默认)—此web方法使用文档样式的调用。

使用这种绑定风格,SOAP消息被格式化为文档,并且通常只有一个部分。

SOAP消息中,<Body>元素通常包含一个子元素。<Body>元素的每个子元素对应于一个消息部分。

  • rpc —这个web方法使用rpc(远程过程调用)风格的调用。

使用这种绑定风格,SOAP消息被格式化为具有多个部分的消息。

SOAP消息中,<Body>元素包含一个子元素,其名称取自相应的操作名称。这个元素是一个生成的包装元素,它为方法的参数列表中的每个参数包含一个子元素。

重要提示:对于手动创建的web服务,该关键字的默认值通常是合适的。当使用SOAP向导从WSDL生成web客户端服务时,InterSystems IRIS会将此关键字设置为适合该WSDL;如果修改该值,web客户端或服务可能不再工作。

详解

此关键字允许指定web方法使用的绑定样式。它影响SOAP主体的格式(但不影响任何SOAP头)。

默认

如果省略此关键字,则<soap:operation>元素的样式属性将改为由SoapBindingStyle类关键字的值确定。

与WSDL的关系

SoapBindingStyle方法关键字指定了WSDL的部分中< soap:operation >元素的样式属性的值。例如,如果SoapBindingStyle方法关键字是document,则WSDL可能如下所示:

...
<binding ...>
 ...
    <operation ...>
        <soap:operation ... style="document"/>
...

相比之下,如果SoapBindingStylerpc,则WSDL可以改为如下所示:

...
<binding ...>
 ...
    <operation ...>
        <soap:operation ... style="rpc"/>
...

绑定样式还会影响web方法的请求和响应<message>元素,如下所示:

= 如果绑定样式是文档,默认情况下,每条消息只有一个部分。例如:

<message name="AddSoapIn">
    <part name="parameters" .../>
</message>

如果ARGUMENTSTYLE参数是message,那么一条消息可以有多个部分。例如:

<message name="AddSoapIn">
   <part name="a" .../>
   <part name="b" .../>
</message>
  • 如果绑定样式是rpc,消息可以有多个部分。例如:
<message name="AddSoapIn">
    <part name="a" .../>
    <part name="b" .../>
</message>
与 %XML.DataSet 一起使用

如果将此关键字与使用 %XML.DataSet 类型的对象作为输入或输出的方法一起使用,则存在一些限制。