ChannelBase 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供自訂通道的基底實作。
public ref class ChannelBase abstract : System::ServiceModel::Channels::CommunicationObject, System::ServiceModel::Channels::IChannel, System::ServiceModel::IDefaultCommunicationTimeouts
public abstract class ChannelBase : System.ServiceModel.Channels.CommunicationObject, System.ServiceModel.Channels.IChannel, System.ServiceModel.IDefaultCommunicationTimeouts
type ChannelBase = class
inherit CommunicationObject
interface IChannel
interface ICommunicationObject
interface IDefaultCommunicationTimeouts
Public MustInherit Class ChannelBase
Inherits CommunicationObject
Implements IChannel, IDefaultCommunicationTimeouts
- 繼承
- 實作
備註
重要
使用不信任的資料呼叫此類別的方法,會造成安全性上的風險。 呼叫此類別的方法時,請一律使用信任的資料。 如需詳細資訊,請參閱 驗證所有輸入。
ChannelBase 類別提供 IChannel 介面的抽象基底類別實作。 它同時也要求每個通道必須與通道管理員關聯。 請注意,只有可以建立 ChannelBase 執行個體的建構函式需要 channelManager
輸入參數。
從繼承狀態機器的 CommunicationObject 實作來管理狀態變更。
ChannelBase 可從關聯之 ChannelManagerBase 取得其開啟、關閉、傳送及接收作業的預設通訊逾時。
ChannelBase 還能為您管理管理員。 除了公開管理員的參考以外,基底類別還會在建立及終結通道時通知管理員。 但管理員參考只有在通道終結之前有效。
即使您使用的是基底類別,您仍必須提供開啟和關閉通道的行為。 這些方法的預設實作無法提供實用資訊。
每當您實作通道時,請務必覆寫 GetProperty。
GetProperty 是透過通道堆疊傳達資訊的絕佳方式,而不需要知道您下方的通道,或上述通道可能會執行查詢。 定義可查詢可用資訊的介面。 每當您無法辨識 GetProperty 的型別引數時,請向下委派 (Delegate) 到堆疊中的下一個通道;如果您要在堆疊底部建立新的傳輸通道,則傳回 null
。
建構函式
ChannelBase(ChannelManagerBase) |
初始化 ChannelBase 類別的新執行個體。 |
屬性
DefaultCloseTimeout |
取得針對要完成之關閉作業所提供的預設時間間隔。 |
DefaultOpenTimeout |
取得針對要完成之開啟作業所提供的預設時間間隔。 |
DefaultReceiveTimeout |
取得針對要完成之接收作業所提供的預設時間間隔。 |
DefaultSendTimeout |
取得針對要完成之傳送作業所提供的預設時間間隔。 |
IsDisposed |
取得值,這個值會指出是否已經處置通訊物件。 (繼承來源 CommunicationObject) |
Manager |
取得與目前通道關聯的通道管理員。 |
State |
取得值,這個值表示通訊物件目前的狀態。 (繼承來源 CommunicationObject) |
ThisLock |
取得會在狀態轉換期間保護類別執行個體的互斥鎖定。 (繼承來源 CommunicationObject) |
方法
事件
Closed |
當通訊物件轉換至已關閉狀態時發生。 (繼承來源 CommunicationObject) |
Closing |
當通訊物件轉換至關閉狀態時就會發生。 (繼承來源 CommunicationObject) |
Faulted |
當通訊物件轉換至錯誤狀態時發生。 (繼承來源 CommunicationObject) |
Opened |
當通訊物件轉換至已開啟狀態時發生。 (繼承來源 CommunicationObject) |
Opening |
當通訊物件轉換至開啟狀態時發生。 (繼承來源 CommunicationObject) |
明確介面實作
IDefaultCommunicationTimeouts.CloseTimeout |
取得通訊物件叫用之關閉方法逾時前所經過的時間間隔。 |
IDefaultCommunicationTimeouts.OpenTimeout |
取得通訊物件叫用之開啟方法逾時前所經過的時間間隔。 |
IDefaultCommunicationTimeouts.ReceiveTimeout |
取得通訊物件叫用之接收方法逾時前所經過的時間間隔。 |
IDefaultCommunicationTimeouts.SendTimeout |
取得通訊物件叫用之傳送方法逾時前所經過的時間間隔。 |