CommunicationState Enumeração

Definição

Define os estados em que um ICommunicationObject pode existir.

public enum class CommunicationState
public enum CommunicationState
type CommunicationState = 
Public Enum CommunicationState
Herança
CommunicationState

Campos

Name Valor Description
Created 0

Indica que o objeto de comunicação foi instanciado e é configurável, mas ainda não está aberto ou pronto para uso.

Opening 1

Indica que o objeto de comunicação está a ser transferido do Created estado para o Opened estado.

Opened 2

Indica que o objeto de comunicação está agora aberto e pronto para ser usado.

Closing 3

Indica que o objeto de comunicação está a transitar para o Closed estado.

Closed 4

Indica que o objeto de comunicação foi encerrado e já não é utilizável.

Faulted 5

Indica que o objeto de comunicação encontrou um erro ou falha do qual não pode recuperar e do qual já não é utilizável.

Observações

Esta enumeração define os estados válidos para todos os objetos de comunicação no sistema, incluindo canais, ouvintes, fábricas, despachantes e hosts de serviço.

Os métodos que gerem as transições entre estes estados e os eventos que lhes podem ser associados são definidos na ICommunicationObject interface. O estado de um objeto pode ser obtido usando a State propriedade.

Existem quatro estados principais e dois estados transitórios que um objeto de comunicação pode ocupar. Os principais estados são:

  • Criado

  • Aberto

  • Fechadas

  • Com Erro

Os dois estados transitórios que um objeto de comunicação pode ocupar ao transitar entre estes estados principais são:

  • Abertura

  • Encerramento

O objeto de comunicação pode ser configurado no estado Criado. Por exemplo, as suas propriedades podem ser alteradas e os seus eventos podem ser registados. Não pode ocorrer entrada ou saída neste estado. Assim, mensagens, por exemplo, não podem ser enviadas ou recebidas de um canal neste estado.

A Abertura é um estado temporário em que o objeto de comunicação entra quando o Open método é invocado. Salvo indicação em contrário nas classes derivadas, objetos no estado de abertura não podem ser configurados. Este estado de transição só pode ser entrado a partir do estado Criado.

Os objetos transitam para o estado Aberto quando o processo aberto termina. Esta transição para o estado aberto só é válida a partir do estado de abertura. Salvo indicação em contrário nas classes derivadas, a configuração do objeto está agora desativada. Neste ponto, o objeto é totalmente utilizável para transferências de mensagens.

O Fecho é um estado temporário em que o objeto entra quando o Close método é invocado para um desligamento gracioso ou quando o objeto é abortado. Neste ponto, o objeto torna-se (se não é já) inutilizável. Esta transição é válida a partir de qualquer estado, exceto o estado Fechado.

O estado fechado equivale a ser descartado e a configuração do objeto ainda pode ser inspecionada.

O estado Falhado é usado para indicar que o objeto transitou para um estado em que já não pode ser utilizado. Existem dois cenários principais em que isto pode acontecer:

  • Se o Open método falhar por qualquer motivo, o objeto transita para o estado falhado.

  • Se um canal baseado em sessão detetar um erro do qual não pode recuperar, transita para o estado falhado. Isto pode acontecer, por exemplo, se houver um erro de protocolo (ou seja, receber uma mensagem de protocolo num momento inválido) ou se o endpoint remoto abortar a sessão.

Um objeto no estado Faulted não está fechado e pode estar a armazenar recursos. O Abort método deve ser usado para fechar um objeto que tenha falhado. Se Close for chamado a um objeto no estado Faulted, a CommunicationObjectFaultedException é lançado porque o objeto não pode ser fechado graciosamente.

Aplica-se a