WCF绑定细节(1)——概述

简介: WCF绑定提供了WCF通信的细节。 (一)绑定元素 绑定元素(Binding Element)用于为各种类型的信道(Channel)生成信道工厂(Channel Factory)和信道监听器(Channel Listener)以处理传出和传入消息(Message)。

WCF绑定提供了WCF通信的细节。

(一)绑定元素

绑定元素(Binding Element)用于为各种类型的信道(Channel)生成信道工厂(Channel Factory)和信道监听器(Channel Listener)以处理传出和传入消息(Message)。

绑定(Binding)包含绑定元素,一个绑定对象是一个绑定元素对象的有序集合,而这些绑定元素是用来指定WCF通信所用的协议、编码、传输等。

每一个绑定元素描述一个终结点与其它终结点通信方式的一个方面。下面是绑定层下的各绑定元素的介绍:

 

选项

是否必需

事务流

TransactionFlowBindingElement

可靠性

ReliableSessionBindingElement

安全性

对称、非对称、传输级

形状更改

CompositeDuplexBindingElement

传输升级

SSL 流、Windows 流、对等解析程序

编码

文本、二进制、MTOM、自定义

传输

TCP、命名管道、HTTPHTTPSMSMQ、自定义

 

其中,编码层与传输层是必需的。

绑定元素负责对信道管理器(Channel Manager)的创建。

(二)信道管理器

信道管理器(Channel Manager)由绑定元素负责创建,它是信道的创建者。服务端的信道管理器叫做信道监听器(Channel Listener);客户端的信道管理器叫信道工厂。

信道管理器基类:ChannelManagerBase

它从CommunicationObject派生,且实现了IDefaultCommunicationTimeouts接口

public abstract class ChannelManagerBase

: CommunicationObject,

IDefaultCommunicationTimeouts

 

1)服务端的信道监听器

信道监听器从ChannelListenerBase类派生,

另外还有接口IChannelListener 还有一个泛型接口IChannelListener<T>

这两个接口分别有抽象基类:

ChannelListenerBase

ChannelListenerBase<T>

2)客户端的信道工厂

信道工厂从ChannelFactoryBase 类派生,

另外还有接口IChannelFactory 还有一个泛型接口IChannelFactory<T>

两个接口分别有抽象基类:

ChannelFactoryBase

ChannelFactoryBase<T>

信道管理器负责对信道的创建。

(三)信道

多个信道(Channel)组成连续的信道栈。信道栈构成了消息(Message)传递的通道。

接口:IChannel

定义所有信道对象都必须实现的基本接口。它要求信道对象实现由所有信道对象共享的状态机接口,还要求信道对象实现从信道栈中检索对象的方法。

这个接口有一个抽象基类:ChannelBase

因为消息交换模式不同(MEP),有不同的信道接口。

 

IChannel 由基本消息交换模式的每个关联信道接口继承:

IInputChannel 用于接收消息。

IOutputChannel 用于发送消息。

IRequestChannel 用于发送请求。

IReplyChannel 用于发送回复。

IDuplexChannel 用于双向消息传递。

 

 

更多内容,请见:

http://www.cnblogs.com/artech/archive/2008/09/22/1295639.html

 

 

博客园大道至简

http://www.cnblogs.com/jams742003/

转载请注明:博客园

目录
相关文章
|
Java 程序员
Java 异常处理与正则表达式详解,实例演练及最佳实践
在 Java 代码执行期间,可能会发生各种错误,包括程序员编码错误、用户输入错误以及其他不可预料的状况。 当错误发生时,Java 通常会停止并生成错误消息,这个过程称为抛出异常。 try...catch 语句 try 语句允许您定义一段代码块,并在其中测试是否发生错误。 catch 语句允许您定义一段代码块,当 try 块中发生错误时执行该代码块。 try 和 catch 关键字成对使用,语法如下:
211 0
|
存储 程序员 C语言
C语言变量命名规则
C语言变量命名规则
853 0
|
小程序 API
微信小程序中音频播放
微信小程序中音频播放
477 0
|
网络协议 网络架构
内网IP 外网IP 网卡 路由器通信过程(全)
       这几天上了计算机网络的课,对于老师讲的内容也是懵懵懂懂,一个慌神就没跟上,啥ip 啥NAT一脸蒙蔽。课后oogle补了点东西算是大致有了点了解,不过网上的总结都是零零散散而且点到即止。
5280 0
|
机器学习/深度学习 算法 存储
一文读懂大规模图神经网络平台AliGraph
2019阿里云峰会·上海开发者大会于7月24日盛大开幕,本次峰会与未来世界的开发者们分享开源大数据、IT基础设施云化、数据库、云原生、物联网等领域的技术干货, 共同探讨前沿科技趋势。本文整理自开源大数据专场中阿里巴巴资深技术专家李永先生的精彩演讲,将为大家分享AliGraph:大规模图神经网络平台。
8810 0
|
10月前
|
关系型数据库 MySQL
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
237 5
Java系列之 解决 项目 jar 包无法上传到Github
该博客文章介绍了解决Java项目中jar包无法上传到Github的问题,通过修改`.gitignore`文件来包含jar包,从而成功添加到上传目录。
Java系列之 解决 项目 jar 包无法上传到Github
|
10月前
|
机器学习/深度学习 自然语言处理 搜索推荐
深度学习中的多头注意力机制及其应用探索
深度学习中的多头注意力机制及其应用探索
702 2
|
11月前
|
Docker 容器
|
资源调度 调度 混合部署
Koordinator 助力云原生应用性能提升,小红书混部技术实践
本文基于 2023 云栖大会上关于 Koordinator 分享的实录,介绍小红书通过规模化落地混部技术来大幅提升集群资源效能,降低业务资源成本。