CommunicationState CommunicationState CommunicationState CommunicationState Enum

Определение

Определяет состояния, в которых может находиться интерфейс ICommunicationObject.Defines the states in which an ICommunicationObject can exist.

public enum class CommunicationState
public enum CommunicationState
type CommunicationState = 
Public Enum CommunicationState
Наследование
CommunicationStateCommunicationStateCommunicationStateCommunicationState

Поля

Closed Closed Closed Closed 4

Указывает, что коммуникационный объект закрыт и больше непригоден для использования.Indicates that the communication object has been closed and is no longer usable.

Closing Closing Closing Closing 3

Указывает, что коммуникационный объект переходит в состояние Closed.Indicates that the communication object is transitioning to the Closed state.

Created Created Created Created 0

Указывает, что коммуникационный объект создан и может быть настроен, но еще не открыт и не готов к использованию.Indicates that the communication object has been instantiated and is configurable, but not yet open or ready for use.

Faulted Faulted Faulted 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 Opened Opened Opened 2

Указывает, что коммуникационный объект сейчас открыт и готов к использованию.Indicates that the communication object is now open and ready to be used.

Opening Opening Opening 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

Объект связи можно настроить в состоянии 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. Если не указано иначе для производных классов, объекты в этом состоянии настраивать нельзя.Unless otherwise noted on derived classes, objects in the opening state cannot be configured. Это переходное состояние можно вводить только из состояния Created.This transition state can only be entered from the Created state.

Объекты переходят в состояние Opened, после завершения процесса открытия.Objects transition to the Opened state when the open process completes. Этот переход в состояние Opened возможен только из состояния Opening.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.

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

Объект в состоянии Faulted не закрывается и может удерживать ресурсы.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 вызывается для объекта в состояние Faulted, CommunicationObjectFaultedException возникает исключение, так как объект не может быть правильно закрыт.If Close is called on an object in the Faulted state, a CommunicationObjectFaultedException is thrown because the object cannot be gracefully closed.

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