CommunicationState 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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 |
설명
이 열거형은 채널, 수신기, 팩터리, 디스패처 및 서비스 호스트를 포함하여 시스템의 모든 통신 개체에 유효한 상태를 정의합니다.
이러한 상태와 이와 연결할 수 있는 이벤트 간의 전환을 관리하는 메서드는 인터페이스에서 ICommunicationObject 정의됩니다. 속성을 사용하여 State 개체의 상태를 가져올 수 있습니다.
통신 개체가 차지할 수 있는 4개의 주 상태와 두 개의 일시적 상태가 있습니다. 주요 상태는 다음과 같습니다.
생성일
열림
폐쇄형
오류
두 가지 일시적인 상태는 통신 개체가 이러한 주 상태 간에 전환할 때 차지할 수 있다고 명시합니다.
열기
닫기
통신 개체는 만든 상태에서 구성할 수 있습니다. 예를 들어 해당 속성을 변경할 수 있으며 해당 이벤트를 등록할 수 있습니다. 이 상태에서는 입력 또는 출력이 발생하지 않습니다. 따라서 예를 들어 이 상태의 채널에서 메시지를 보내거나 받을 수 없습니다.
여는 메서드가 호출될 때 Open 통신 개체가 들어오는 임시 상태입니다. 파생 클래스에 달리 명시되지 않는 한 여는 상태의 개체를 구성할 수 없습니다. 이 전환 상태는 만든 상태에서만 입력할 수 있습니다.
열려 있는 프로세스가 완료되면 개체가 열린 상태로 전환됩니다. 열린 상태로의 이 전환은 여는 상태에서만 유효합니다. 파생 클래스에 달리 명시되지 않는 한 개체의 구성은 이제 사용하지 않도록 설정됩니다. 이 시점에서 개체는 메시지 전송에 완전히 사용할 수 있습니다.
Closing은 정상적인 종료를 위해 메서드가 호출되거나 개체가 중단될 때 Close 개체가 들어오는 임시 상태입니다. 이때 개체는 아직 사용할 수 없게 됩니다. 이 전환은 닫힌 상태를 제외한 모든 상태에서 유효합니다.
닫힌 상태는 삭제되는 것과 같으며 개체의 구성을 계속 검사할 수 있습니다.
장애 상태는 개체가 더 이상 사용할 수 없는 상태로 전환되었음을 나타내는 데 사용됩니다. 이 문제가 발생할 수 있는 두 가지 기본 시나리오가 있습니다.
어떤 이유로든 메서드가 Open 실패하면 개체가 오류 상태로 전환됩니다.
세션 기반 채널에서 복구할 수 없는 오류를 감지하면 오류가 발생한 상태로 전환됩니다. 예를 들어 프로토콜 오류(즉, 잘못된 시간에 프로토콜 메시지를 수신)가 있거나 원격 엔드포인트가 세션을 중단하는 경우에 발생할 수 있습니다.
오류 상태의 개체가 닫혀 있지 않으며 리소스를 보유할 수 있습니다. 이 메서드는 Abort 오류가 있는 개체를 닫는 데 사용해야 합니다. Faulted 상태의 개체에서 호출되는 경우 Close 개체를 CommunicationObjectFaultedException 정상적으로 닫을 수 없으므로 throw됩니다.