Поделиться через


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.

Коммуникационный объект может находиться в четырех основных и двух переходных состояниях. Ниже перечислены основные состояния:

  • Создание

  • Opened (Открыто)

  • Закрытое

  • Сбой

При переходе между этими основными состояниями коммуникационный объект может находиться в следующих двух переходных состояниях:

  • Открытие

  • Закрытие

Объект связи можно настроить в состоянии Создано. Например, можно изменить его свойства и зарегистрировать связанные с ним события. Ввод и вывод в этом состоянии невозможен. Поэтому в этом состоянии нельзя, например, отправлять и получать сообщения по каналу.

Открытие — это временное состояние, которое объект связи переходит при вызове Open метода . Если не указано иначе для производных классов, объекты в этом состоянии настраивать нельзя. Это состояние перехода можно ввести только из состояния Создано.

Объекты переходить в состояние Open после завершения открытого процесса. Этот переход в состояние Opened действителен только из состояния Открытия. Если не указано иначе для производных классов, настройка объекта в этом состоянии запрещена. В данном состоянии объект полностью пригоден для передачи сообщений.

Закрытие — это временное состояние, которое объект переходит при вызове Close метода для корректного завершения работы или прерывании объекта. В данном состоянии объект становится (если еще на стал) непригодным для использования. Этот переход действителен из любого состояния, кроме состояния Closed.

Состояние Closed эквивалентно удалению, и конфигурацию объекта можно проверить.

Состояние Сбой используется, чтобы указать, что объект перемечен в состояние, в котором его больше нельзя использовать. Ниже указаны два основных случая, в которых это может произойти.

  • В случае сбоя метода Open по любой причине объект переходит в состояние Faulted.

  • Если канал, основанный на сеансах, обнаруживает ошибку, после которой он не может восстановиться, он переходит в состояние Faulted. Это может произойти, например, в случае ошибки протокола (канал принимает протокольное сообщение в недопустимое время) или прерывания сеанса удаленной конечной точкой.

Объект в состоянии Сбоя не закрыт и может содержать ресурсы. Чтобы закрыть неисправный объект, следует использовать метод Abort. Если Close вызывается для объекта в состоянии Сбоя, возникает исключение , CommunicationObjectFaultedException так как объект не может быть корректно закрыт.

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