IInputChannel 介面

定義

定義通道必須實作以接收訊息的介面。

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

備註

重要

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

IInputChannel 合約包括接收、嘗試接收 (try-to-receive) 和等候訊息 (wait-for-a-message) 功能的同步和非同步等變體。

提取模型一般是配合 IInputChannel 使用來接收訊息:您要呼叫 Receive (從通道「提取」訊息) 然後等候訊息到達。 另一個替代的使用模式是呼叫 BeginWaitForMessage(TimeSpan, AsyncCallback, Object) 或者 BeginWaitForMessage(TimeSpan, AsyncCallback, Object),然後呼叫 Receive(TimeSpan)。 對於在 WaitForMessage(TimeSpan)Receive 呼叫之間開始異動的異動用法而言,這是很常見的方法。

IInputChannel 不一定要繫結到單一寄件人。 其他的通道和通道介面可以提供特定寄件人和 IInputChannel之間的相互關聯,但是基底合約並未提供這類限制。 實作 (Implementation) 可以為每個訊息建立新的 IInputChannel,或者為多個訊息和寄件人重複使用相同的 IInputChannel

屬性

LocalAddress

取得輸入通道接收訊息的位址。

State

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

(繼承來源 ICommunicationObject)

方法

Abort()

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

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

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

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

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

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

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

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

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

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

開始非同步的作業,接收具有與該作業關聯之狀態物件的訊息。

BeginReceive(TimeSpan, AsyncCallback, Object)

開始非同步的作業,接收具有已指定逾時以及與該作業關聯之狀態物件的訊息。

BeginTryReceive(TimeSpan, AsyncCallback, Object)

開始非同步的作業,接收具有已指定逾時以及與該作業關聯之狀態物件的訊息。

BeginWaitForMessage(TimeSpan, AsyncCallback, Object)

開始非同步的「等候訊息到達」(wait-for-a-message-to-arrive) 作業,這個作業具有指定的逾時以及與該作業關聯之狀態物件。

Close()

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

(繼承來源 ICommunicationObject)
Close(TimeSpan)

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

(繼承來源 ICommunicationObject)
EndClose(IAsyncResult)

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

(繼承來源 ICommunicationObject)
EndOpen(IAsyncResult)

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

(繼承來源 ICommunicationObject)
EndReceive(IAsyncResult)

完成非同步作業,以便接收訊息。

EndTryReceive(IAsyncResult, Message)

完成指定的非同步作業,以便接收訊息。

EndWaitForMessage(IAsyncResult)

完成指定的非同步「等候訊息」(wait-for-a-message) 作業。

GetProperty<T>()

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

(繼承來源 IChannel)
Open()

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

(繼承來源 ICommunicationObject)
Open(TimeSpan)

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

(繼承來源 ICommunicationObject)
Receive()

如果有收到訊息,則將該訊息傳回。 如果沒有收到訊息,執行緒就會封鎖一段預設間隔時間。

Receive(TimeSpan)

如果有收到訊息,則將該訊息傳回。 如果沒有收到訊息,執行緒就會封鎖一段指定的間隔時間。

TryReceive(TimeSpan, Message)

嘗試在指定的時間間隔內接收訊息。

WaitForMessage(TimeSpan)

傳回值,這個值會表示訊息是否是在指定的時間間隔內到達。

事件

Closed

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

(繼承來源 ICommunicationObject)
Closing

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

(繼承來源 ICommunicationObject)
Faulted

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

(繼承來源 ICommunicationObject)
Opened

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

(繼承來源 ICommunicationObject)
Opening

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

(繼承來源 ICommunicationObject)

擴充方法

CloseHelperAsync(ICommunicationObject, TimeSpan)

定義通道必須實作以接收訊息的介面。

OpenHelperAsync(ICommunicationObject, TimeSpan)

定義通道必須實作以接收訊息的介面。

適用於