您的位置:知识库 » .NET技术

[WCF中的Binding模型]之二: 信道与信道栈(Channel and Channel Stack)

作者: Artech  来源: 博客园  发布时间: 2008-12-15 12:17  阅读: 6406 次  推荐: 0   原文链接   [收藏]  

 

2. IChannel和ChannelBase

WCF中信道层中的每种类型的信道直接或者间接实现了接口System.ServiceModel.Channels.IChannel,IChannel的定义异常简单,仅仅具有一个唯一范型方法成员:GetProperty()

public interface IChannel : ICommunicationObject
{
    // Methods 
    T GetProperty() where T : class;
}

通过调用信道对象GetProperty方法,获得具有范型类型的属性。这个方法比较重要,因为它是探测信道是否具有某种能力的一种有效的方法。比如我们可以通过该方法,指定相应的范型类型,确定信道是否支持某种Channel Shape(关于channel shape将在接下来的部分中进行介绍),消息版本和安全模式等等。

除了IChannel接口之外,WCF还定义了一个实现了IChannel接口的基类:System.ServiceModel.Channels.ChannelBase。。除了实现了IChannel接口,ChannelBase还实现了另外两个接口:ICommnucationObject和IDefaultCommunicationTimeouts,并直接继承自CommnucationObject。

public abstract class ChannelBase : CommunicationObject, IChannel, ICommunicationObject, IDefaultCommunicationTimeouts 
{ 
    public virtual T GetProperty() where T : class; 
    //... ... 
    TimeSpan IDefaultCommunicationTimeouts.CloseTimeout { get; } 
    TimeSpan IDefaultCommunicationTimeouts.OpenTimeout { get; } 
    TimeSpan IDefaultCommunicationTimeouts.ReceiveTimeout { get; } 
    TimeSpan IDefaultCommunicationTimeouts.SendTimeout { get; } 
} 

0
0

.NET技术热门文章

    .NET技术最新文章

      最新新闻

        热门新闻