CommunicationState Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет состояния, в которых может находиться интерфейс ICommunicationObject.
public enum class CommunicationState
public enum CommunicationState
type CommunicationState =
Public Enum 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 так как объект не может быть корректно закрыт.