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 プロパティを使用して取得できます。

通信オブジェクトが取ることができる状態には、4 つのメイン状態と 2 つの移行状態があります。 メイン状態は、次のとおりです。

  • 作成済み

  • 開始済み

  • クローズ

  • フォールト

通信オブジェクトがこれらのメイン状態の間を移行するときに取ることができる 2 つの移行状態は、次のとおりです。

  • 開く

  • 閉じる

通信オブジェクトは、Created 状態で構成できます。 たとえば、プロパティの変更や、イベントの登録を実行できます。 この状態にあるときは、入力または出力が発生することはありません。 したがって、たとえば、チャネルからのメッセージの送信または受信は、この状態中には実行できません。

Opening は、メソッドの呼び出し時に通信オブジェクトが入力する Open 一時的な状態です。 派生クラスで特に指示しない限り、Opening 状態にあるオブジェクトは構成できません。 この遷移状態は、Created 状態からのみ入力できます。

オブジェクトは、開いているプロセスが完了すると開かれた状態に遷移します。 この Opened 状態への切り替えは、開始状態からのみ有効です。 派生クラスで特に指示しない限り、オブジェクトの構成はこの時点で無効になります。 この時点で、オブジェクトはメッセージを転送するために完全に使用可能です。

Closing は、正常なシャットダウンのためにメソッドが呼び出されたとき、またはオブジェクトが中止されたときに Close オブジェクトが入力する一時的な状態です。 この時点で、オブジェクトは使用不能になります (既に使用不能になっていない場合)。 この遷移は、Closed 状態を除く任意の状態から有効です。

Closed 状態は破棄されるのと同じであり、オブジェクトの構成は引き続き検査できます。

Faulted 状態は、オブジェクトが使用できなくなった状態に遷移したことを示すために使用されます。 これが発生する可能性がある主なシナリオには、次の 2 つがあります。

  • Open メソッドが何らかの理由で失敗した場合、オブジェクトは Faulted 状態に移行します。

  • セッション ベースのチャネルが、回復できないエラーを検出した場合は、Faulted 状態に移行します。 これは、たとえばプロトコル エラーが発生した (つまり、無効な時間にプロトコル メッセージを受信した) 場合や、リモート エンドポイントでセッションが中止された場合に発生することがあります。

Faulted 状態のオブジェクトは閉じておらず、リソースを保持している可能性があります。 Fault 状態にあるオブジェクトは、Abort メソッドを使用して閉じる必要があります。 が Faulted 状態のオブジェクトに対して 呼び出された場合 CloseCommunicationObjectFaultedException オブジェクトを正常に閉じることができないため、 がスローされます。

適用対象