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.

Коммуникационный объект может находиться в четырех основных и двух переходных состояниях.There are four main states and two transient states that a communication object can occupy. Ниже перечислены основные состояния:The main states are:

  • СозданоCreated

  • ОткрытоOpened

  • ClosedClosed

  • FaultedFaulted

При переходе между этими основными состояниями коммуникационный объект может находиться в следующих двух переходных состояниях:The two transitory states that a communication object can occupy when transitioning between these main states are:

  • ОткрытиеOpening

  • закрытиеClosing

Коммуникационный объект можно настроить в созданном состоянии.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. Если не указано иначе для производных классов, объекты в этом состоянии настраивать нельзя.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.

Объекты переходят в состояние открытия после завершения процесса открытия.Objects transition to the Opened state when the open process completes. Этот переход к открытому состоянию допустим только в состоянии открытия.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. Этот переход допустим из любого состояния, за исключением закрытого состояния.This transition is valid from any state except the Closed state.

Закрытое состояние эквивалентно удалению, и конфигурация объекта по-прежнему может быть проверена.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. Ниже указаны два основных случая, в которых это может произойти.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.

Объект в состоянии сбоя не закрыт и может удерживать ресурсы.An object in the Faulted state is not closed and may be holding resources. Чтобы закрыть неисправный объект, следует использовать метод Abort.The Abort method should be used to close an object that has 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.

Применяется к