CommunicationState 列舉

定義

定義 ICommunicationObject 可處於其中的狀態。

public enum class CommunicationState
public enum CommunicationState
type CommunicationState = 
Public Enum CommunicationState
繼承
CommunicationState

欄位

Closed 4

指出該通訊物件已關閉,而且不再提供使用。

Closing 3

指出該通訊物件將轉換成 Closed 狀態。

Created 0

指出物件已產生而且是可設定狀態,但是尚未開啟或還未準備好提供使用。

Faulted 5

指出該通訊物件遇到其無法復原並導致其不再提供使用的錯誤。

Opened 2

指出該通訊物件現在已開啟,而且已準備好提供使用。

Opening 1

指出該通訊物件將從 Created 狀態轉換為 Opened 狀態。

備註

這個列舉會定義系統中所有通訊物件可有效轉換至其中的狀態,這些物件包括通道、接聽程式、處理站、發送器和服務主機。

管理這些狀態和與其可能有關聯的事件之間之轉換的方法會定義在 ICommunicationObject 介面中。 物件的狀態可使用 State 屬性來取得。

通訊物件可以處於四種主要狀態和兩種過渡狀態。 主要狀態為:

  • 建立時間

  • 已開啟

  • 封閉式

  • 發生錯誤

在這些主要狀態之間轉換時,通訊物件可能會處於兩種過渡狀態:

  • 開啟

  • 關閉

通訊物件可以設定為 [已建立] 狀態。 例如,它的屬性可以變更,而它的事件可以註冊。 在這個狀態下不會發生任何輸入或輸出。 這樣一來,可能在這個狀態中的訊息就無法從通道傳送或接收。

Open 是呼叫 方法時,通訊物件所輸入的 Open 暫時狀態。 除非在衍生類別中另有附註,否則無法設定處於開啟狀態的物件。 此轉換狀態只能從 [建立] 狀態進入。

當開啟的進程完成時,物件會轉換為開啟狀態。 此轉換至 [開啟] 狀態只有在 [開啟] 狀態才有效。 除非在衍生類別中另有附註,否則現在狀態物件的組態是停用的。 此時,物件完全可供訊息傳輸使用。

Closing 是物件在針對正常關機或中止物件叫用方法時 Close 所輸入的暫時狀態。 此時,物件就無法使用 (如果尚未準備好)。 此轉換是從 [已關閉] 狀態以外的任何狀態生效。

Closed 狀態相當於被處置,而且仍然可以檢查物件的組態。

Faulted 狀態是用來指出物件已轉換為無法再使用的狀態。 有兩種主要案例會發生這種情況:

  • 如果 Open 方法因任何理由發生失敗,此物件會轉換至錯誤的狀態。

  • 如果工作階段架構通道偵測到無法復原的錯誤,該通道就會轉換至錯誤的狀態。 執行個體可能會在存在通訊協定錯誤 (也就是說,它在無效階段時收到通訊協定訊息) 或發生遠端端點中止工作階段的情況下,出現這種情形。

處於 Faulted 狀態的物件未關閉,而且可能會保存資源。 Abort 方法應該要用於關閉已發生錯誤的物件。 如果在 Close Faulted 狀態的物件上呼叫 ,則會擲回 , CommunicationObjectFaultedException 因為無法正常關閉物件。

適用於