一、设计服务协定
服务协定:指定终结点与外界通信的内容。更具体地说,它是有关一组特定消息的声明,这些消息被组织成基本消息交换模式 (MEP),如请求/答复、单向和双工 。也就是说,它定义了请求-答复协定指定返回答复的方法。必须根据此协定的条款发送答复并与请求相关联。即使该方法不返回任何答复。
1. 创建单向协定
单向:客户端调用 Windows Communication Foundation (WCF) 服务上的操作但不期待答复。例如,可以使用这种类型的协定将通知发布给许多订户。
我们之前的代码若不修改:
// Step7: Create the method declaration for the contract.
[OperationContract(IsOneWay = true)]
double Add(double n1, double n2);
[OperationContract(IsOneWay = true)]
double Subtract(double n1, double n2);
[OperationContract(IsOneWay = true)]
double Multiply(double n1, double n2);
[OperationContract(IsOneWay = true)]
double Divide(double n1, double n2);
将出现:
单向协定不得有输出参数(ref out 返回值)。
所以,意向的代码应是这样的:
[OperationContract(IsOneWay = true)]
void Add(double n1, double n2);
[OperationContract(IsOneWay = true)]
void Subtract(double n1, double n2);
[OperationContract(IsOneWay = true)]
void Multiply(double n1, double n2);
[OperationContract(IsOneWay = true)]
void Divide(double n1, double n2);
2. 创建双向协定
双向:可使得客户端和服务器可以独立地相互通信。这样做可允许服务器对客户端进行单向呼叫,而客户端可以将这些呼叫视为事件。
之前的例子,就是双向的。即客户端能得到回复。
3.