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

请求-答复协定指定返回答复的方法。 必须根据此协定的条款发送答复并与请求相关联。 即使该方法不返回任何答复(采用 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)
}

另请参阅