在《实例篇》给出的例子中,我实际上是通过对终结点的绑定进行相应的配置让整个消息的交换过程在一个可靠会话中进行,进而实现可靠消息传输的目的。由于整个可靠会话的机制是完全在信道层实现的,而整个信道层的最终缔造者就是绑定,所以可靠会话编程是围绕着绑定进行的。而从结构组成的角度讲,绑定本质上就是一组绑定元素的有序集合,没有个为了实现各自的目的对传入信道栈的消息进行消息的处理。在这里,实现可靠会话是一个特殊的绑定元素:ReliableSessionBindingElement.
WCF中整个可靠会话的实现完全是通过ReliableSessionBindingElement这个一个绑定元素创建的信道实现的。具体的实现机制,我们会在《原理篇》进行单独的介绍,在这里我们仅仅讨论可靠会话编程的部分。所以我们先来看看ReliableSessionBindingElement属性定义部分,因为可靠会话实现的行为是受这些属性控制的。
class ReliableSessionBindingElement : BindingElement, IPolicyExportExtension
2: {
//其他成员
public TimeSpan AcknowledgementInterval { get; set; }
bool FlowControlEnabled { get; set; }
public TimeSpan InactivityTimeout { get; set; }
int MaxPendingChannels { get; set; }
int MaxRetryCount { get; set; }
int MaxTransferWindowSize { get; set; }
bool Ordered { get; set; }
public ReliableMessagingVersion ReliableMessagingVersion { get; set; }
12: }