博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WCF Behaviors(行为)
阅读量:4661 次
发布时间:2019-06-09

本文共 1255 字,大约阅读时间需要 4 分钟。

《》中介绍了WCF各个组成部分,本章分多次详细介绍behaviors

Behaviors(行为)  定义WCF 客户端与服务端运行时的特性或配置,behaviors 不仅影响WCF 运行时,还会影响客户端与服务端之间的数据通信。

Behaviors 主要分为三类:

Service behaviors(服务行为):运行于服务级别,适用于所有端点,负责内容如:实例化、事务、授权、审计 等;

Endpoint behaviors(端点行为):适用于服务端点,负责对进出服务的消息进行审查和处理;

Operation behaviors(操作行为):适用于操作级别,负责如 序列化、事务流、参数处理等;

其他behaviors:

Callback behaviors 控制客户端创建端点,用于双工通信;

 

运行时初始化方式:在客户端由ChannelFactory初始化运行时,在服务端则有SerivceHost初始化运行时,执行功能如下:

  1. ChannelFactory 通过泛型方式接收CLR类型 ,ServiceHost 通过构造方式接受CLR类型,读取CLR类型属性及特性信息;
//ChannelFactoryDuplexChannelFactory channelFactory = new DuplexChannelFactory(stockContext, endpointName);//ServiceHostServiceHost servcieHost = new ServiceHost(type);

此操作中,会分析作为代码定义的特性信息,如:

[ServiceBehavior(TransactionTimeout="00:00:30")]
  1. 从 app.config或web.config 文件加载配置信息,ChannelFactory 主要关注绑定信息,ServiceHost 主要关注契约和绑定信息;

分析配置文件中behavior定义,如:

 
  1. 构造运行时环境结构,即:ServiceDescription;

ChannelFactory 与 ServiceHost均构建了运行时,并将第1、2步中的行为插入到运行时中;

  1. 启动通信,ChannelFactory使用通道(信道)来连接服务,ServiceHost打开通道(信道)来监听消息。

 

在客户端,行为通常用来执行3种功能:

参数校验:在参数的数据转换为序列化之前,检验、修改 CLR形式的数据;

消息格式化:在CLR类型和序列化之间转换数据的过程中,检验、修改该数据;

消息校验:在转换成CLR类型之前,检验、修改该XML形式的数据。

在服务端,行为通常用于另外两种场景:

操作选择:在服务级别,检验入站消息并决定应该调用哪个操作;

操作调用:在操作级别,调用类的方法。

行为元素之间的控制流,图示:

转载于:https://www.cnblogs.com/jerryshi/archive/2011/09/25/2190009.html

你可能感兴趣的文章
七月之思
查看>>
no matching provisioning profiles found
查看>>
Oracle RAC cache fusion原理測试
查看>>
LibreOJ #6220. sum
查看>>
retain AND nonatomic
查看>>
ABAP常用Function
查看>>
阿里云ECS安装sqlserver,本地无法连接问题排查思路
查看>>
记录一下mac上码云的使用
查看>>
图片切换一
查看>>
Windows宿主机访问Ubuntu中mysql数据库笔记
查看>>
VC6.0中的灰色字体是什么?
查看>>
oracle 数据库、实例、服务名、SID
查看>>
2018-10-29 A股主要指数的市盈率(PE)估值高度
查看>>
【模拟】BAPC2014 G Growling Gears (Codeforces GYM 100526)
查看>>
2018总结和2019的计划
查看>>
关于java的设计目标
查看>>
CSS 酷站
查看>>
hash表学习笔记
查看>>
appium Ui自动化调起应用点击
查看>>
iOS开发UI篇—无限轮播(循环利用)
查看>>