CommunicationState 列挙型

定義

ICommunicationObject が存在できる状態を定義します。Defines the states in which an ICommunicationObject can exist.

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

フィールド

Closed 4

通信オブジェクトが閉じた状態にあり、使用できなくなっていることを示します。Indicates that the communication object has been closed and is no longer usable.

Closing 3

通信オブジェクトが Closed 状態に移行中であることを示します。Indicates that the communication object is transitioning to the Closed state.

Created 0

通信オブジェクトはインスタンス化され、構成可能であるが、まだ開いていないか、使用できる準備ができていないことを示します。Indicates that the communication object has been instantiated and is configurable, but not yet open or ready for use.

Faulted 5

通信オブジェクトで回復不能なエラーや障害が発生し、使用できない状態になっていることを示します。Indicates that the communication object has encountered an error or fault from which it cannot recover and from which it is no longer usable.

Opened 2

通信オブジェクトが開かれ、使用できる状態になっていることを示します。Indicates that the communication object is now open and ready to be used.

Opening 1

通信オブジェクトが Created 状態から Opened 状態に移行中であることを示します。Indicates that the communication object is being transitioned from the Created state to the Opened state.

注釈

この列挙体は、チャネル、リスナー、ファクトリ、ディスパッチャー、およびサービス ホストを含むシステム内のすべての通信オブジェクトにとって有効な状態を定義します。This enumeration defines the states that are valid for all communication objects in the system, including channels, listeners, factories, dispatchers, and service hosts.

これらの状態の間の移行を管理するメソッドと、それらに関連付けることができるイベントが、ICommunicationObject インターフェイスに定義されます。The methods that manage transitions between these states and the events that can be associated with them are defined in the ICommunicationObject interface. オブジェクトの状態は、State プロパティを使用して取得できます。The state of an object can be obtained using the State property.

通信オブジェクトが取ることができる状態には、4 つのメイン状態と 2 つの移行状態があります。There are four main states and two transient states that a communication object can occupy. メイン状態は、次のとおりです。The main states are:

  • 作成日時Created

  • OpenedOpened

  • [不可]Closed

  • FaultedFaulted

通信オブジェクトがこれらのメイン状態の間を移行するときに取ることができる 2 つの移行状態は、次のとおりです。The two transitory states that a communication object can occupy when transitioning between these main states are:

  • OpeningOpening

  • ClosingClosing

通信オブジェクトは、Created 状態で構成できます。The communication object can be configured in the Created state. たとえば、プロパティの変更や、イベントの登録を実行できます。For example, its properties can be changed, and its events can be registered. この状態にあるときは、入力または出力が発生することはありません。No input or output can occur in this state. したがって、たとえば、チャネルからのメッセージの送信または受信は、この状態中には実行できません。So messages, for example, cannot be sent or received from a channel in this state.

オープンは、Open メソッドが呼び出されたときに通信オブジェクトによって入力される一時的な状態です。The Opening is a temporary state that the communication object enters when the Open method is invoked. 派生クラスで特に指示しない限り、Opening 状態にあるオブジェクトは構成できません。Unless otherwise noted on derived classes, objects in the opening state cannot be configured. この遷移状態は、作成された状態からのみ入力できます。This transition state can only be entered from the Created state.

開いているプロセスが完了すると、オブジェクトは Opened 状態に遷移します。Objects transition to the Opened state when the open process completes. Opened 状態への遷移は、開始状態からのみ有効です。This transition to the Opened state is only valid from the Opening state. 派生クラスで特に指示しない限り、オブジェクトの構成はこの時点で無効になります。Unless otherwise noted on derived classes, the configuration of the object is now disabled. この時点で、オブジェクトはメッセージを転送するために完全に使用可能です。At this point, the object is fully usable for message transfers.

終了は、正常なシャットダウンのために Close メソッドが呼び出されたとき、またはオブジェクトが中止されたときに、オブジェクトによって入力される一時的な状態です。The Closing is a temporary state that the object enters when the Close method is invoked for a graceful shutdown or the object is aborted. この時点で、オブジェクトは使用不能になります (既に使用不能になっていない場合)。At this point, the object becomes (if not already) unusable. この遷移は、Closed 状態以外の任意の状態から有効です。This transition is valid from any state except the Closed state.

Closed 状態は、破棄と同じであり、オブジェクトの構成を検査することもできます。The Closed state is equivalent to being disposed and the configuration of the object can still be inspected.

Faulted 状態は、オブジェクトが使用できなくなった状態に遷移したことを示すために使用されます。The Faulted state is used to indicate that the object has transitioned to a state where it can no longer be used. これが発生する可能性がある主なシナリオには、次の 2 つがあります。There are two primary scenarios where this can happen:

  • Open メソッドが何らかの理由で失敗した場合、オブジェクトは Faulted 状態に移行します。If the Open method fails for any reason, the object transitions to the faulted state.

  • セッション ベースのチャネルが、回復できないエラーを検出した場合は、Faulted 状態に移行します。If a session-based channel detects an error that it cannot recover from, it transitions to the faulted state. これは、たとえばプロトコル エラーが発生した (つまり、無効な時間にプロトコル メッセージを受信した) 場合や、リモート エンドポイントでセッションが中止された場合に発生することがあります。This can happen for instance if there is a protocol error (that is, it receives a protocol message at an invalid time) or if the remote endpoint aborts the session.

Faulted 状態のオブジェクトは閉じられていないため、リソースを保持している可能性があります。An object in the Faulted state is not closed and may be holding resources. Fault 状態にあるオブジェクトは、Abort メソッドを使用して閉じる必要があります。The Abort method should be used to close an object that has faulted. Faulted 状態のオブジェクトに対して Close が呼び出されると、オブジェクトを正常に閉じることができないため、CommunicationObjectFaultedException がスローされます。If Close is called on an object in the Faulted state, a CommunicationObjectFaultedException is thrown because the object cannot be gracefully closed.

適用対象