WCF全面解析(上下册)3.2.3 IChannel和ChannelBase_WCF全面解析(上下册)3.2.3 IChannel和ChannelBase试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > WCF全面解析(上下册) > 3.2.3 IChannel和ChannelBase

WCF全面解析(上下册)——3.2.3 IChannel和ChannelBase

IChannel和ChannelBase 每一种类型的信道都直接或者间接地实现了System.ServiceModel.Channels.IChannel接口。如下面的代码所示,IChannel仅仅具有一个唯一的GetProperty<T>方法用于返回信道具有的指定类型的属性。这个方法比较重要,因为它是探测信道是否具有某种能力或特性的一种有效的方法。比如可以通过该方法确定信道是否支持某种消息版本。 public interface IChannel : ICommunicationObject { T GetProperty<T>() where T : class; } 除了IChannel接口之外,WCF还定义了一个实现了该接口的抽象类ChannelBase。如下面的代码片段所示,ChannelBase不仅是CommunicationObject的子类,同时还实现了IDefaultCommunicationTimeouts接口。 public abstract class ChannelBase : CommunicationObject, IChannel, ICommunicationObject, IDefaultCommunicationTimeouts { //其他成员 public virtual T GetProperty<T>() where T : class; protected ChannelBase(ChannelManagerBase channelManager); TimeSpan IDefaultCommunicationTimeouts.CloseTimeout { get; } TimeSpan IDefaultCommunicationTimeouts.OpenTimeout { get; } TimeSpan IDefaultCommunicationTimeouts.ReceiveTimeout { get; } TimeSpan IDefaultCommunicationTimeouts.SendTimeout { get; } } ChannelBase具有一个包含ChannelManagerBase类型参数的构造函数。通过上面的介绍我们知道,ChannelManagerBase同样实现了接口IDefaultCommunicationTimeouts。当基于某个信道管理器(信道监听器或者信道工厂)创建一个信道的时候,指定的信道管理器的4个XxxTimeout属性值将默认作为信道的同名属性值。

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《WCF全面解析(上下册)》其他试读目录

• 3.1.1 信道与信道栈
• 3.1.2 实例演示:直接通过绑定进行消息通信
• 3.1.3 WCF的绑定模型
• 3.2.1 CommunicationObject
• 3.2.2 DefaultCommunicationTimeouts
• 3.2.3 IChannel和ChannelBase [当前]
• 3.2.4 消息交换模式
• 3.2.5 信道形状
• 3.2.6 会话信道
• 3.2.7 实例演示:自定义信道
• 3.3.1 IChannelListener与ChannelListenerBase
• 3.3.2 信道栈的创建/使用模式
• 3.3.3 实例演示:自定义信道监听器
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •