語言

ChannelBase 類別

定義

提供自訂通道的基底實作。

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
繼承
實作

備註

Important

從這個類別使用不受信任的數據呼叫方法構成安全性風險。 僅使用信任的數據呼叫來自這個類別的方法。 如需詳細資訊,請參閱 驗證所有輸入。

該 ChannelBase 類別提供介面的抽象基底類別實作 IChannel 。 同時也要求每個通道都與通道管理器相關聯。 請注意,唯一可用於建立 實 ChannelBase 例的建構子需要輸入 channelManager 參數。

狀態變更是透過繼承狀態 CommunicationObject 機實作來管理的。

它 ChannelBase 會從相關單位獲得預設的通訊逾時,針對開啟、關閉、發送和接收操作 ChannelManagerBase 。

他們 ChannelBase 也會幫你管理經理。 除了向管理器揭露參考外,基底類別也會在通道建立與銷毀時通知管理器。 但對經理的提及只有在頻道被摧毀前才有用。

即使你使用基底類別,仍必須提供開啟和關閉通道的行為。 這些方法的預設實作並未提供有用的資訊。

你也必須確保在實施頻道時覆蓋 GetProperty 該權限。 GetProperty 這是在頻道堆疊中傳遞資訊的絕佳方式,無需知道你下方有哪些頻道,或是你上方哪些頻道會執行查詢。 定義可查詢可用資訊的介面。 當你不認識 的 GetProperty型別參數時,請委派到堆疊中的下一個通道; null 若在堆疊底部建立新的傳輸通道,則返回。

建構函式

名稱 Description
ChannelBase(ChannelManagerBase)

初始化 ChannelBase 類別的新執行個體。

屬性

名稱 Description
DefaultCloseTimeout

取得預設的近距離操作完成時間間隔。

DefaultOpenTimeout

取得預設的開放操作完成時間間隔。

DefaultReceiveTimeout

取得接收操作完成的預設時間間隔。

DefaultSendTimeout

取得預設的傳送操作完成時間間隔。

IsDisposed

會得到一個值,表示通訊物件是否已被處置。

(繼承來源 CommunicationObject)
Manager

取得與目前頻道相關聯的頻道管理器。

State

會得到一個表示通訊物件當前狀態的值。

(繼承來源 CommunicationObject)
ThisLock

取得互斥鎖,保護類別實例在狀態轉換期間。

(繼承來源 CommunicationObject)

方法

名稱 Description
Abort()

會使通訊物件立即從當前狀態轉換到關閉狀態。

(繼承來源 CommunicationObject)
BeginClose(AsyncCallback, Object)

開始異步操作以關閉通訊物件。

(繼承來源 CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

開始異步操作,以關閉具有指定逾時的通訊物件。

(繼承來源 CommunicationObject)
BeginOpen(AsyncCallback, Object)

開始異步操作以開啟通訊物件。

(繼承來源 CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

開始異步操作,以在指定的時間間隔內開啟通訊物件。

(繼承來源 CommunicationObject)
Close()

使通訊物件從其目前狀態轉換成已關閉狀態。

(繼承來源 CommunicationObject)
Close(TimeSpan)

使通訊物件在指定時間間隔內從當前狀態轉換到封閉狀態。

(繼承來源 CommunicationObject)
EndClose(IAsyncResult)

完成異步操作以關閉通訊物件。

(繼承來源 CommunicationObject)
EndOpen(IAsyncResult)

完成異步操作以開啟通訊物件。

(繼承來源 CommunicationObject)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Fault()

會使通訊物件從當前狀態轉換到故障狀態。

(繼承來源 CommunicationObject)
GetCommunicationObjectType()

取得通訊對象的類型。

(繼承來源 CommunicationObject)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetProperty<T>()

回傳通道堆疊中適當層級所請求的類型物件(若存在)。

GetType()

取得目前實例的 Type。

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
OnAbort()

在通訊物件因呼叫同步中止操作而轉換至關閉狀態後,插入處理程序。

(繼承來源 CommunicationObject)
OnBeginClose(TimeSpan, AsyncCallback, Object)

在通訊物件因呼叫非同步關閉操作而轉換至關閉狀態後,插入處理。

(繼承來源 CommunicationObject)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

在通訊物件因呼叫非同步開啟操作而轉換至開啟狀態後,插入處理。

(繼承來源 CommunicationObject)
OnClose(TimeSpan)

在通訊物件因呼叫同步關閉操作而轉換至關閉狀態後,插入處理程序。

(繼承來源 CommunicationObject)
OnClosed()

在轉換至閉合狀態時使用診斷追蹤。

OnClosing()

在通訊物件轉換到關閉狀態時被呼叫。

(繼承來源 CommunicationObject)
OnEndClose(IAsyncResult)

完成對通訊物件關閉的非同步操作。

(繼承來源 CommunicationObject)
OnEndOpen(IAsyncResult)

完成對通訊物件開啟的非同步操作。

(繼承來源 CommunicationObject)
OnFaulted()

在通訊物件因呼叫同步故障操作而轉換到故障狀態後,插入處理程序。

(繼承來源 CommunicationObject)
OnOpen(TimeSpan)

在通訊物件轉換進入開啟狀態後插入處理,該狀態必須在指定時間內完成。

(繼承來源 CommunicationObject)
OnOpened()

在通訊物件轉換到開啟狀態時被呼叫。

(繼承來源 CommunicationObject)
OnOpening()

在通訊物件轉換到開啟狀態時被呼叫。

(繼承來源 CommunicationObject)
Open()

使通訊物件從已建立的狀態轉換成開啟的狀態。

(繼承來源 CommunicationObject)
Open(TimeSpan)

使通訊物件在指定的時間間隔內,從建立的狀態轉換成開啟的狀態。

(繼承來源 CommunicationObject)
ThrowIfDisposed()

若通訊物件被丟棄,則拋出例外。

(繼承來源 CommunicationObject)
ThrowIfDisposedOrImmutable()

如果通訊物件 該 State 屬性未設定為 Created 狀態,則會拋出例外。

(繼承來源 CommunicationObject)
ThrowIfDisposedOrNotOpen()

如果通訊物件不在該 Opened 狀態,會拋出例外。

(繼承來源 CommunicationObject)
ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)

事件

名稱 Description
Closed

當通訊物件轉換到封閉狀態時,會發生這種情況。

(繼承來源 CommunicationObject)
Closing

當通訊物件轉換到關閉狀態時,會發生這種情況。

(繼承來源 CommunicationObject)
Faulted

當通訊物件轉換到錯誤狀態時,會發生這種情況。

(繼承來源 CommunicationObject)
Opened

當通訊物件轉換進入開啟狀態時,會發生這種情況。

(繼承來源 CommunicationObject)
Opening

當通訊物件轉換到開啟狀態時,會發生這種情況。

(繼承來源 CommunicationObject)

明確介面實作

名稱 Description
IDefaultCommunicationTimeouts.CloseTimeout

取得通訊物件呼叫的接近方法逾時結束的時間區間。

IDefaultCommunicationTimeouts.OpenTimeout

取得一個時間間隔,當通訊物件呼叫開啟方法時,該方法會逾時結束。

IDefaultCommunicationTimeouts.ReceiveTimeout

取得接收方法在通訊物件呼叫後逾時的時間區間。

IDefaultCommunicationTimeouts.SendTimeout

取得通訊物件呼叫的 send 方法逾時結束的時間區間。

適用於