CommunicationState Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Define os estados nos quais um ICommunicationObject pode existir.
public enum class CommunicationState
public enum CommunicationState
type CommunicationState =
Public Enum CommunicationState
- Herança
Campos
Closed | 4 | Indica que o objeto de comunicação foi fechado e não é mais utilizável. |
Closing | 3 | Indica que o objeto de comunicação está fazendo a transição para o estado Closed. |
Created | 0 | Indica que o objeto de comunicação foi instanciado e é configurável, mas ainda não está aberto ou pronto para uso. |
Faulted | 5 | Indica que o objeto de comunicação apresentou um erro ou uma falha da qual não pode se recuperar e não é mais utilizável. |
Opened | 2 | Indica que o objeto de comunicação agora está aberto e pronto para ser usado. |
Opening | 1 | Indica que o objeto de comunicação está fazendo a transição do estado Created para o estado Opened. |
Comentários
Essa enumeração define os estados válidos para todos os objetos de comunicação no sistema, incluindo canais, ouvintes, fábricas, dispatchers e hosts de serviço.
Os métodos que gerenciam transições entre esses estados e os eventos que podem ser associados a eles são definidos na ICommunicationObject interface. O estado de um objeto pode ser obtido usando a State propriedade.
Há quatro estados principais e dois estados transitórios que um objeto de comunicação pode ocupar. Os estados principais são:
Criado
Aberto
Fechadas
Com falha
Os dois estados transitórios que um objeto de comunicação pode ocupar ao fazer a transição entre esses estados principais são:
Abertura
Fechamento
O objeto de comunicação pode ser configurado no estado Criado. Por exemplo, suas propriedades podem ser alteradas e seus eventos podem ser registrados. Nenhuma entrada ou saída pode ocorrer nesse estado. Portanto, as mensagens, por exemplo, não podem ser enviadas ou recebidas de um canal nesse estado.
A Abertura é um estado temporário que o objeto de comunicação insere quando o Open método é invocado. A menos que seja observado de outra forma em classes derivadas, os objetos no estado de abertura não podem ser configurados. Esse estado de transição só pode ser inserido do estado Criado.
Os objetos fazem a transição para o estado Aberto quando o processo aberto é concluído. Essa transição para o estado Aberto só é válida do estado de Abertura. A menos que observado de outra forma em classes derivadas, a configuração do objeto agora está desabilitada. Neste ponto, o objeto é totalmente utilizável para transferências de mensagens.
O Fechamento é um estado temporário que o objeto entra quando o Close método é invocado para um desligamento normal ou o objeto é anulado. Neste ponto, o objeto se torna (se ainda não) inutilizável. Essa transição é válida de qualquer estado, exceto o estado Fechado.
O estado Fechado é equivalente a ser descartado e a configuração do objeto ainda pode ser inspecionada.
O estado com falha é usado para indicar que o objeto fez a transição para um estado em que ele não pode mais ser usado. Há dois cenários primários em que isso pode acontecer:
Se o Open método falhar por qualquer motivo, o objeto fará a transição para o estado com falha.
Se um canal baseado em sessão detectar um erro do qual não pode se recuperar, ele fará a transição para o estado com falha. Isso pode acontecer, por exemplo, se houver um erro de protocolo (ou seja, ele recebe uma mensagem de protocolo em um momento inválido) ou se o ponto de extremidade remoto anular a sessão.
Um objeto no estado com falha não está fechado e pode estar mantendo recursos. O Abort método deve ser usado para fechar um objeto com falha. Se Close for chamado em um objeto no estado com falha, um CommunicationObjectFaultedException será gerado porque o objeto não pode ser fechado normalmente.