CommunicationState Enumerazione

Definizione

Definisce gli stati in cui può trovarsi un oggetto ICommunicationObject.Defines the states in which an ICommunicationObject can exist.

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

Campi

Closed 4

Indica che l'oggetto di comunicazione è stato chiuso e non è più utilizzabile.Indicates that the communication object has been closed and is no longer usable.

Closing 3

Indica che l'oggetto di comunicazione è in fase di transizione allo stato Closed.Indicates that the communication object is transitioning to the Closed state.

Created 0

Indica che è stata creata l'istanza dell'oggetto di comunicazione e che è possibile configurarlo, ma non aprirlo o utilizzarlo.Indicates that the communication object has been instantiated and is configurable, but not yet open or ready for use.

Faulted 5

Indica che per l'oggetto di comunicazione si è verificato un errore di cui è impossibile eseguire il recupero e che lo rende non più utilizzabile.Indicates that the communication object has encountered an error or fault from which it cannot recover and from which it is no longer usable.

Opened 2

Indica che l'oggetto di comunicazione è ora aperto e pronto per l'utilizzo.Indicates that the communication object is now open and ready to be used.

Opening 1

Indica che l'oggetto di comunicazione è in fase di transizione dallo stato Created allo stato Opened.Indicates that the communication object is being transitioned from the Created state to the Opened state.

Commenti

Questa enumerazione definisce gli stati validi per tutti gli oggetti di comunicazione presenti nel sistema, compresi i canali, i listener, le factory, i dispatcher e gli host dei servizi.This enumeration defines the states that are valid for all communication objects in the system, including channels, listeners, factories, dispatchers, and service hosts.

I metodi che gestiscono le transizioni tra questi stati e gli eventi che possono essere associati ad essi vengono definiti nell'interfaccia ICommunicationObject.The methods that manage transitions between these states and the events that can be associated with them are defined in the ICommunicationObject interface. Per ottenere lo stato di oggetto, utilizzare la proprietà State.The state of an object can be obtained using the State property.

Gli oggetti di comunicazione possono trovarsi in quattro stati principali e due transitori:There are four main states and two transient states that a communication object can occupy. Gli stati principali sono i seguenti:The main states are:

  • CreatoCreated

  • OpenedOpened

  • ChiusoClosed

  • Non riuscitoFaulted

I due stati transitori in cui può trovarsi un oggetto di comunicazione nella transizione tra due stati principali sono i seguenti:The two transitory states that a communication object can occupy when transitioning between these main states are:

  • AperturaOpening

  • ClosingClosing

L'oggetto di comunicazione può essere configurato nello stato created.The communication object can be configured in the Created state. Ad esempio, è possibile modificarne le proprietà e registrane gli eventi.For example, its properties can be changed, and its events can be registered. Poiché in questo stato non può aver luogo alcun input o output,No input or output can occur in this state. non sarà possibile, ad esempio, inviare o ricevere messaggi da un canale.So messages, for example, cannot be sent or received from a channel in this state.

L'apertura è uno stato temporaneo che l'oggetto di comunicazione immette quando viene richiamato il metodo Open.The Opening is a temporary state that the communication object enters when the Open method is invoked. Se non specificato diversamente nelle classi derivate, gli oggetti in stato di pre-apertura non possono essere configurati.Unless otherwise noted on derived classes, objects in the opening state cannot be configured. Questo stato di transizione può essere immesso solo dallo stato creato.This transition state can only be entered from the Created state.

Gli oggetti passano allo stato Opened al termine del processo di apertura.Objects transition to the Opened state when the open process completes. Questa transizione allo stato Opened è valida solo dallo stato Opening.This transition to the Opened state is only valid from the Opening state. Se non diversamente specificato nelle classi derivate, in questo stato la configurazione dell'oggetto è disabilitata.Unless otherwise noted on derived classes, the configuration of the object is now disabled. In questa fase, l'oggetto è pienamente utilizzabile per il trasferimento dei messaggi.At this point, the object is fully usable for message transfers.

La chiusura è uno stato temporaneo che l'oggetto immette quando viene richiamato il metodo Close per un arresto normale o l'oggetto viene interrotto.The Closing is a temporary state that the object enters when the Close method is invoked for a graceful shutdown or the object is aborted. In questo stato, l'oggetto diviene inutilizzabile, se non lo è già.At this point, the object becomes (if not already) unusable. Questa transizione è valida da qualsiasi stato eccetto lo stato Closed.This transition is valid from any state except the Closed state.

Lo stato Closed equivale a essere eliminato ed è comunque possibile controllare la configurazione dell'oggetto.The Closed state is equivalent to being disposed and the configuration of the object can still be inspected.

Lo stato Faulted viene utilizzato per indicare che l'oggetto è passato a uno stato in cui non può più essere utilizzato.The Faulted state is used to indicate that the object has transitioned to a state where it can no longer be used. Esistono due scenari principali in cui questa situazione può verificarsi:There are two primary scenarios where this can happen:

  • Se il metodo Open per qualche motivo non riesce, l'oggetto passa allo stato di errore.If the Open method fails for any reason, the object transitions to the faulted state.

  • Se un canale basato sulla sessione rileva un errore di cui è impossibile eseguire il recupero, passa allo stato di errore.If a session-based channel detects an error that it cannot recover from, it transitions to the faulted state. Questa situazione può verificarsi ad esempio in caso di un errore di protocollo, ovvero un messaggio di protocollo viene ricevuto in un momento non valido, o se l'endpoint remoto interrompe la sessione.This can happen for instance if there is a protocol error (that is, it receives a protocol message at an invalid time) or if the remote endpoint aborts the session.

Un oggetto nello stato di errore non è chiuso e potrebbe contenere risorse.An object in the Faulted state is not closed and may be holding resources. Per chiudere un oggetto in stato di errore, è necessario utilizzare il metodo Abort.The Abort method should be used to close an object that has faulted. Se Close viene chiamato su un oggetto nello stato Faulted, viene generata un'CommunicationObjectFaultedException perché l'oggetto non può essere chiuso normalmente.If Close is called on an object in the Faulted state, a CommunicationObjectFaultedException is thrown because the object cannot be gracefully closed.

Si applica a