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


CommunicationState Перечисление

Определение

Определяет состояния, в которых может существовать ICommunicationObject.

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

Поля

Имя Значение Описание
Created 0

Указывает, что объект связи создан и настраивается, но еще не открыт или готов к использованию.

Opening 1

Указывает, что объект связи перемещается из Created состояния в Opened состояние.

Opened 2

Указывает, что объект связи теперь открыт и готов к использованию.

Closing 3

Указывает, что объект связи переходит Closed в состояние.

Closed 4

Указывает, что объект связи закрыт и больше не используется.

Faulted 5

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

Комментарии

Это перечисление определяет состояния, допустимые для всех объектов связи в системе, включая каналы, прослушиватели, фабрики, диспетчеры и узлы служб.

Методы, которые управляют переходами между этими состояниями и событиями, которые могут быть связаны с ними, определены в интерфейсе ICommunicationObject . Состояние объекта можно получить с помощью State свойства.

Существует четыре основных состояния и два временных состояния, которые может занимать объект коммуникации. Основные состояния:

  • Создано

  • Открыто

  • Закрыто

  • Сбой

Два временных состояния определяют, что объект связи может занимать при переходе между этими основными состояниями:

  • Открытие

  • Закрытие

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

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

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

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

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

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

  • Open Если метод завершается ошибкой по какой-либо причине, объект переходит в состояние сбоя.

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

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

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