다음을 통해 공유


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 개체의 상태를 가져올 수 있습니다.

통신 개체가 차지할 수 있는 4개의 주 상태와 두 개의 일시적 상태가 있습니다. 주요 상태는 다음과 같습니다.

  • 생성일

  • 열림

  • 폐쇄형

  • 오류

두 가지 일시적인 상태는 통신 개체가 이러한 주 상태 간에 전환할 때 차지할 수 있다고 명시합니다.

  • 열기

  • 닫기

통신 개체는 만든 상태에서 구성할 수 있습니다. 예를 들어 해당 속성을 변경할 수 있으며 해당 이벤트를 등록할 수 있습니다. 이 상태에서는 입력 또는 출력이 발생하지 않습니다. 따라서 예를 들어 이 상태의 채널에서 메시지를 보내거나 받을 수 없습니다.

여는 메서드가 호출될 때 Open 통신 개체가 들어오는 임시 상태입니다. 파생 클래스에 달리 명시되지 않는 한 여는 상태의 개체를 구성할 수 없습니다. 이 전환 상태는 만든 상태에서만 입력할 수 있습니다.

열려 있는 프로세스가 완료되면 개체가 열린 상태로 전환됩니다. 열린 상태로의 이 전환은 여는 상태에서만 유효합니다. 파생 클래스에 달리 명시되지 않는 한 개체의 구성은 이제 사용하지 않도록 설정됩니다. 이 시점에서 개체는 메시지 전송에 완전히 사용할 수 있습니다.

Closing은 정상적인 종료를 위해 메서드가 호출되거나 개체가 중단될 때 Close 개체가 들어오는 임시 상태입니다. 이때 개체는 아직 사용할 수 없게 됩니다. 이 전환은 닫힌 상태를 제외한 모든 상태에서 유효합니다.

닫힌 상태는 삭제되는 것과 같으며 개체의 구성을 계속 검사할 수 있습니다.

장애 상태는 개체가 더 이상 사용할 수 없는 상태로 전환되었음을 나타내는 데 사용됩니다. 이 문제가 발생할 수 있는 두 가지 기본 시나리오가 있습니다.

  • 어떤 이유로든 메서드가 Open 실패하면 개체가 오류 상태로 전환됩니다.

  • 세션 기반 채널에서 복구할 수 없는 오류를 감지하면 오류가 발생한 상태로 전환됩니다. 예를 들어 프로토콜 오류(즉, 잘못된 시간에 프로토콜 메시지를 수신)가 있거나 원격 엔드포인트가 세션을 중단하는 경우에 발생할 수 있습니다.

오류 상태의 개체가 닫혀 있지 않으며 리소스를 보유할 수 있습니다. 이 메서드는 Abort 오류가 있는 개체를 닫는 데 사용해야 합니다. Faulted 상태의 개체에서 호출되는 경우 Close 개체를 CommunicationObjectFaultedException 정상적으로 닫을 수 없으므로 throw됩니다.

적용 대상