Condividi tramite


CommunicationState Enumerazione

Definizione

Definisce gli stati in cui può esistere un ICommunicationObject.

public enum class CommunicationState
public enum CommunicationState
type CommunicationState = 
Public Enum CommunicationState
Ereditarietà
CommunicationState

Campi

Nome Valore Descrizione
Created 0

Indica che l'oggetto di comunicazione è stato creato un'istanza ed è configurabile, ma non ancora aperto o pronto per l'uso.

Opening 1

Indica che l'oggetto di comunicazione viene sottoposto a transizione dallo Created stato allo Opened stato .

Opened 2

Indica che l'oggetto di comunicazione è ora aperto e pronto per l'uso.

Closing 3

Indica che l'oggetto di comunicazione sta passando allo Closed stato .

Closed 4

Indica che l'oggetto di comunicazione è stato chiuso e non è più utilizzabile.

Faulted 5

Indica che l'oggetto di comunicazione ha rilevato un errore o un errore da cui non è possibile recuperare e da cui non è più utilizzabile.

Commenti

Questa enumerazione definisce gli stati validi per tutti gli oggetti di comunicazione nel sistema, inclusi canali, listener, factory, dispatcher e host del servizio.

I metodi che gestiscono le transizioni tra questi stati e gli eventi a cui è possibile associare sono definiti nell'interfaccia ICommunicationObject . Lo stato di un oggetto può essere ottenuto utilizzando la State proprietà .

Esistono quattro stati principali e due stati temporanei che un oggetto di comunicazione può occupare. Gli stati principali sono:

  • Creato

  • Aperto

  • Chiusi

  • Guasto

I due stati transitori che un oggetto di comunicazione può occupare durante la transizione tra questi stati principali sono:

  • Apertura

  • Chiusura

L'oggetto di comunicazione può essere configurato nello stato Created. Ad esempio, le relative proprietà possono essere modificate e i relativi eventi possono essere registrati. In questo stato non può verificarsi alcun input o output. Pertanto, i messaggi, ad esempio, non possono essere inviati o ricevuti da un canale in questo stato.

L'oggetto Opening è uno stato temporaneo immesso dall'oggetto di comunicazione quando viene richiamato il Open metodo . Se non diversamente specificato nelle classi derivate, gli oggetti nello stato di apertura non possono essere configurati. Questo stato di transizione può essere immesso solo dallo stato Creato.

Gli oggetti passano allo stato Aperto al termine del processo aperto. Questa transizione allo stato Aperto è valida solo dallo stato Apertura. Se non diversamente specificato nelle classi derivate, la configurazione dell'oggetto è ora disabilitata. A questo punto, l'oggetto è completamente utilizzabile per i trasferimenti di messaggi.

Closing è uno stato temporaneo immesso dall'oggetto quando viene richiamato il Close metodo per un arresto normale o l'oggetto viene interrotto. A questo punto, l'oggetto diventa (se non già) inutilizzabile. Questa transizione è valida da qualsiasi stato, ad eccezione dello stato Chiuso.

Lo stato Closed equivale a essere eliminato e la configurazione dell'oggetto può comunque essere controllata.

Lo stato Faulted viene usato per indicare che l'oggetto è passato a uno stato in cui non può più essere utilizzato. Esistono due scenari principali in cui ciò può verificarsi:

  • Se il Open metodo ha esito negativo per qualsiasi motivo, l'oggetto passa allo stato con errore.

  • Se un canale basato su sessione rileva un errore da cui non è possibile eseguire il ripristino, passa allo stato di errore. Ciò può verificarsi, ad esempio, se si verifica un errore di protocollo ( ovvero riceve un messaggio di protocollo in un momento non valido) o se l'endpoint remoto interrompe la sessione.

Un oggetto nello stato Faulted non è chiuso e può contenere risorse. Il Abort metodo deve essere utilizzato per chiudere un oggetto con errori. Se Close viene chiamato su un oggetto nello stato Faulted, viene generata un'eccezione CommunicationObjectFaultedException perché l'oggetto non può essere chiuso normalmente.

Si applica a