WCF服务协定的理解
2014-05-25 21:37
183 查看
1、创建服务协定
类和接口都可以定义服务协定
建议使用接口,因为接口可以直接对服务服务协定建模,平时都以接口为主
定义服务协定
在类或接口的上面使用ServiceContaratAtlnibute属性来标记,则这个类或接口为服务的类或接口
定义服务操作
在接口中的方法的上面使用OpenationContractAttribute属性标记,如果没有使用此属性来标记则该操作(即方法)在客户端是无法访问到的
服务操作(即方法)它不会传递对象的引用(即是直传递而不是引用传递)它们传递的是对象的副本(“注:”此时可能不再是本机编程,服务可能不在本机上)
服务操作的消息模式
a、默认的模式(请求与答复模式)
即使该方法的修饰的返回值为void都为请求与答复模式,如果方法的修饰为void就人有一隐藏的返回值,用于判断是否提出请求与是否回复了请求
此模式只有接收到服务端的答复后才会继续往下执行,这样会造成客户端出现很多的等待情况,例如:插入很多的数据的时候就需要长时间的等待,是是个请求与答复的缺点
b、单向模式
客户端不必先行等待操作的完成就会立即的往下执行,除非发送的数据庞大或发送的数据错误,不然是不需要等待的,但它的缺点为不会处理SoAp错误
它的使用格式为:将Isoneway设置为true
如:[OperationContract(IsOneWay=true)]
双工模式
服务端和客户端均能独立地向对方发送消息
对于那些类似于事件行为的服务来说这种双向通信模式就很有用
设计双工模式协定必须设计回调协定,并将该回调协定的类型分配给标记服务协定的ServiceContractAttribut属性的CallbackContract属性的propert
要实现双式模式则必须创建第二个接口,该接口包含在客户端调用的方法声明
//SessionMode = SessionMode.Required 说明开启了对话模式
//CallbackContract = typeof(ICalculatorDupiexCailback) 说明了回调接口,即说明了客户端的接口
如:[ServiceContract(Namespace = "http:Microsoft.ServiceMode1.Samples", SessionMode = SessionMode.Required,CallbackContract = typeof(ICalculatorDupiexCailback))]
类和接口都可以定义服务协定
建议使用接口,因为接口可以直接对服务服务协定建模,平时都以接口为主
定义服务协定
在类或接口的上面使用ServiceContaratAtlnibute属性来标记,则这个类或接口为服务的类或接口
定义服务操作
在接口中的方法的上面使用OpenationContractAttribute属性标记,如果没有使用此属性来标记则该操作(即方法)在客户端是无法访问到的
服务操作(即方法)它不会传递对象的引用(即是直传递而不是引用传递)它们传递的是对象的副本(“注:”此时可能不再是本机编程,服务可能不在本机上)
服务操作的消息模式
a、默认的模式(请求与答复模式)
即使该方法的修饰的返回值为void都为请求与答复模式,如果方法的修饰为void就人有一隐藏的返回值,用于判断是否提出请求与是否回复了请求
此模式只有接收到服务端的答复后才会继续往下执行,这样会造成客户端出现很多的等待情况,例如:插入很多的数据的时候就需要长时间的等待,是是个请求与答复的缺点
b、单向模式
客户端不必先行等待操作的完成就会立即的往下执行,除非发送的数据庞大或发送的数据错误,不然是不需要等待的,但它的缺点为不会处理SoAp错误
它的使用格式为:将Isoneway设置为true
如:[OperationContract(IsOneWay=true)]
双工模式
服务端和客户端均能独立地向对方发送消息
对于那些类似于事件行为的服务来说这种双向通信模式就很有用
设计双工模式协定必须设计回调协定,并将该回调协定的类型分配给标记服务协定的ServiceContractAttribut属性的CallbackContract属性的propert
要实现双式模式则必须创建第二个接口,该接口包含在客户端调用的方法声明
//SessionMode = SessionMode.Required 说明开启了对话模式
//CallbackContract = typeof(ICalculatorDupiexCailback) 说明了回调接口,即说明了客户端的接口
如:[ServiceContract(Namespace = "http:Microsoft.ServiceMode1.Samples", SessionMode = SessionMode.Required,CallbackContract = typeof(ICalculatorDupiexCailback))]
相关文章推荐
- WCF的基本编程 设计服务协定 如何:创建单工协定
- [MSDN]WCF(2)设计和实现服务协定
- 简单的实例来理解WCF 数据服务(WCF DS)
- 【架构之路之WCF全析(一)】--服务协定及消息模式
- WCF学习心得------(二)设计和实现服务协定
- WCF的基本编程 设计服务协定
- WCF 设计和实现服务协定(01)
- WCF从零学习之设计和实现服务协定2
- 从零开始学WCF(2)设计和实现服务协定
- 从零开始学WCF(2):设计和实现服务协定
- 简单的实例来理解WCF 数据服务
- 从零开始学WCF之设计和实现服务协定
- Art of WCF 2,设计与实现服务协定
- 传说中的WCF(2):服务协定的那些事儿
- WCF学习心得------(二)设计和实现服务协定
- 跟我一起从零开始学WCF系列课程-----笔记(2):设计和实现服务协定
- 传说中的WCF(2):服务协定的那些事儿
- 传说中的WCF(2):服务协定的那些事儿
- [转] 传说中的WCF(2):服务协定的那些事儿
- WCF 设计和实现服务协定(01)