IChannel 介面

定義

定義所有通道物件都必須實作的基本介面。 它會要求這些物件實作所有通訊物件所共用的狀態機器介面,並要求這些物件實作一個方法來從通道堆疊擷取物件。

public interface class IChannel : System::ServiceModel::ICommunicationObject
public interface IChannel : System.ServiceModel.ICommunicationObject
type IChannel = interface
    interface ICommunicationObject
Public Interface IChannel
Implements ICommunicationObject
衍生
實作

備註

重要

呼叫實作此介面之類別的方法時,若並用了不信任的資料,會造成安全性上的風險。 呼叫實作此介面之類別的方法時,請一律使用信任的資料。 如需詳細資訊,請參閱 驗證所有輸入

通道必須滿足 ICommunicationObject 介面所定義之狀態機器的合約。

IChannel 介面會將

GetProperty 介面的 ICommunicationObject 方法。 這個方法會提供從通道堆疊擷取屬性的機制,不管這些屬性位於堆疊中的何處。 方法名稱中的「屬性」一詞指的是屬於堆疊內其中一個通道的資訊片段。 該屬性的 CLR 型別是由 T 所決定。 這個擷取方法也會在通道處理站和通道接聽程式上使用。

IChannel 會由與基本訊息交換模式相關聯的每個通道介面繼承:

屬性

State

取得通訊導向物件的目前狀態。

(繼承來源 ICommunicationObject)

方法

Abort()

導致通訊物件立即從目前的狀態轉換為已關閉狀態。

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

開始非同步作業以關閉通訊物件。

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

開始非同步作業,關閉有已指定逾時的通訊物件。

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

開始非同步作業以開啟通訊物件。

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

開始非同步作業,開啟有已指定時間間隔的通訊物件。

(繼承來源 ICommunicationObject)
Close()

導致通訊物件從目前的狀態轉換為已關閉狀態。

(繼承來源 ICommunicationObject)
Close(TimeSpan)

導致通訊物件從目前的狀態轉換為已關閉狀態。

(繼承來源 ICommunicationObject)
EndClose(IAsyncResult)

完成非同步作業以關閉通訊物件。

(繼承來源 ICommunicationObject)
EndOpen(IAsyncResult)

完成非同步作業以開啟通訊物件。

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

從通道堆疊的適當層次中,傳回要求的型別物件 (如果有)。

Open()

導致通訊物件從已建立狀態轉換為已開啟狀態。

(繼承來源 ICommunicationObject)
Open(TimeSpan)

在指定時間間隔內,讓通訊物件從已建立狀態轉換為已開啟狀態。

(繼承來源 ICommunicationObject)

事件

Closed

當通訊物件從關閉中狀態轉換為已關閉狀態完成時發生。

(繼承來源 ICommunicationObject)
Closing

當通訊物件第一次進入關閉中狀態時發生。

(繼承來源 ICommunicationObject)
Faulted

當通訊物件第一次進入錯誤狀態時發生。

(繼承來源 ICommunicationObject)
Opened

當通訊物件從開啟中狀態轉換為已開啟狀態結束時發生。

(繼承來源 ICommunicationObject)
Opening

當通訊物件第一次進入開啟中狀態時發生。

(繼承來源 ICommunicationObject)

適用於