Defines the states in which an ICommunicationObject can exist.
Assembly: System.ServiceModel (in System.ServiceModel.dll)
Indicates that the communication object has been closed and is no longer usable.
Indicates that the communication object is transitioning to thestate.
Indicates that the communication object has been instantiated and is configurable, but not yet open or ready for use.
Indicates that the communication object has encountered an error or fault from which it cannot recover and from which it is no longer usable.
Indicates that the communication object is now open and ready to be used.
Indicates that the communication object is being transitioned from thestate to the state.
This enumeration defines the states that are valid for all communication objects in the system, including channels, listeners, factories, dispatchers, and service hosts.
The methods that manage transitions between these states and the events that can be associated with them are defined in the ICommunicationObject interface. The state of an object can be obtained using the State property.
There are four main states and two transient states that a communication object can occupy. The main states are:
The two transitory states that a communication object can occupy when transitioning between these main states are:
The communication object can be configured in thestate. 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.
The Open method is invoked. Unless otherwise noted on derived classes, objects in the opening state cannot be configured. This transition state can only be entered from the state.is a temporary state that the communication object enters when the
Objects transition to thestate when the open process completes. This transition to the state is only valid from the 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.
The Close method is invoked for a graceful shutdown or the object is aborted. At this point, the object becomes (if not already) unusable. This transition is valid from any state except the state.is a temporary state that the object enters when the
Thestate is equivalent to being disposed and the configuration of the object can still be inspected.
Thestate is used to indicate that the object has transitioned to a state where it can no longer be used. There are two primary scenarios where this can happen:
If the Open method fails for any reason, the object transitions to the faulted state.
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.
An object in the Abort method should be used to close an object that has faulted. If Close is called on an object in the state, a CommunicationObjectFaultedException is thrown because the object cannot be gracefully closed.state is not closed and may be holding resources. The
Available since 4.5
Available since 3.0
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0