WCF绑定提供了WCF通信的细节。
(一)绑定元素
绑定元素(Binding Element)用于为各种类型的信道(Channel)生成信道工厂(Channel Factory)和信道监听器(Channel Listener)以处理传出和传入消息(Message)。
绑定(Binding)包含绑定元素,一个绑定对象是一个绑定元素对象的有序集合,而这些绑定元素是用来指定WCF通信所用的协议、编码、传输等。
每一个绑定元素描述一个终结点与其它终结点通信方式的一个方面。下面是绑定层下的各绑定元素的介绍:
层 |
选项 |
是否必需 |
事务流 |
TransactionFlowBindingElement |
否 |
可靠性 |
ReliableSessionBindingElement |
否 |
安全性 |
对称、非对称、传输级 |
否 |
形状更改 |
CompositeDuplexBindingElement |
否 |
传输升级 |
SSL 流、Windows 流、对等解析程序 |
否 |
编码 |
文本、二进制、MTOM、自定义 |
是 |
传输 |
TCP、命名管道、HTTP、HTTPS、MSMQ、自定义 |
是 |
其中,编码层与传输层是必需的。
绑定元素负责对信道管理器(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