如何:创建请求-答复协定

请求-答复协定指定返回答复的方法。必须根据此协定的条款发送答复并与请求相关联。即使该方法不返回任何答复(采用 C# 语言时,返回 void,采用 Visual Basic 语言时,返回 Sub),基础结构也将创建一条空消息并将其发送给调用方。若要防止发送空答复消息,请对操作使用单向协定。

创建请求-答复协定

  1. 用所选编程语言创建接口。

  2. ServiceContractAttribute 特性应用于该接口。

  3. OperationContractAttribute 特性应用于客户端可调用的每个方法。

  4. 可选项。将 IsOneWay 属性的值设置为 true,以防止发送空答复消息。默认情况下,所有操作均是请求-答复协定。

示例

下面的示例为提供 AddSubtract 方法的计算器服务定义一个协定。Multiply 方法不是协定的一部分,因为它没有通过 OperationContractAttribute 类进行标记,因此不可以由客户端访问。

using System.ServiceModel; 

[ServiceContract] 
public interface ICalculator 
{ 
[OperationContract] 
// It would be equivalent to write explicitly:
// [OperationContract(IsOneWay=false)] 
int Add(int a, int b); 

[OperationContract] 
int Subtract(int a, int b); 

int Multiply(int a, int b)
}
  • 有关如何指定操作协定的更多信息,请参见 OperationContractAttribute 类和 IsOneWay 属性。

  • 在部署了服务之后,应用 ServiceContractAttributeOperationContractAttribute 特性会导致在 Web 服务描述语言 (WSDL) 文档中自动生成服务协定定义。通过将 ?wsdl 追加到该服务的 HTTP 基址,可下载此文档。例如,http://microsoft/CalculatorService?wsdl

另请参见

任务

如何:创建双工协定

参考

OperationContractAttribute

概念

设计服务协定