WCF服务协定的理解

 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))]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值