書名: WCF技術剖析(卷1)作者名: 蔣金楠本章字數: 278字更新時間: 2018-12-27 11:32:51
3.3.2 IChannel和ChannelBase
WCF信道層中每種類型的信道直接或間接實現了接口System.ServiceModel.Channels.IChannel,IChannel的定義異常簡單,僅僅具有一個唯一泛型方法成員:GetProperty<T>()。
public interface IChannel : ICommunicationObject { T GetProperty<T>() where T : class; }
通過調用信道對象GetProperty<T>方法,獲得具有泛型類型的屬性。這個方法比較重要,因為它是探測信道是否具有某種能力或特性的一種有效的方法。比如可以通過該方法,指定相應的泛型類型,確定信道是否支持某種消息版本和安全模式等。
除了IChannel接口之外,WCF還定義了一個實現了IChannel接口的基類:System.ServiceModel.Channels.ChannelBase。除了實現了IChannel接口,ChannelBase還實現了上面介紹的另外兩個接口:ICommnucationObject和IDefaultCommunicationTimeouts,并直接繼承自CommunicationObject。
public abstract class ChannelBase : CommunicationObject, IChannel, ICommunicationObject, IDefaultCommunicationTimeouts { //其他成員 public virtual T GetProperty<T>() where T : class; TimeSpan IDefaultCommunicationTimeouts.CloseTimeout { get; } TimeSpan IDefaultCommunicationTimeouts.OpenTimeout { get; } TimeSpan IDefaultCommunicationTimeouts.ReceiveTimeout { get; } TimeSpan IDefaultCommunicationTimeouts.SendTimeout { get; } }
推薦閱讀
- C/C++算法從菜鳥到達人
- 動手玩轉Scratch3.0編程:人工智能科創教育指南
- JIRA 7 Administration Cookbook(Second Edition)
- Getting Started with PowerShell
- FreeSWITCH 1.6 Cookbook
- Java Web基礎與實例教程
- Learning Firefox OS Application Development
- 秒懂設計模式
- TradeStation交易應用實踐:量化方法構建贏家策略(原書第2版)
- PHP從入門到精通(第4版)(軟件開發視頻大講堂)
- PHP編程基礎與實例教程
- Mastering Elasticsearch(Second Edition)
- Learning Concurrency in Python
- Kotlin進階實戰
- Zend Framework 2 Cookbook