CommunicationState CommunicationState CommunicationState CommunicationState Enum

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à
CommunicationStateCommunicationStateCommunicationStateCommunicationState

Campi

Closed Closed Closed 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 Closing Closing 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 Created Created 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 Faulted Faulted 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 Opened Opened 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 Opening Opening 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 è un stato temporaneo che l'oggetto di comunicazione passa quando il Open metodo viene richiamato.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 immessi solo dallo stato Created.This transition state can only be entered from the Created state.

Gli oggetti passano allo stato Opened quando viene completato il processo di apertura.Objects transition to the Opened state when the open process completes. Tale transizione allo stato Opened è valida solo dallo stato apertura.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 è un stato temporaneo che l'oggetto inserito quando il Close metodo viene richiamato 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. Tale transizione è valida da tutti gli stati tranne lo stato chiuso.This transition is valid from any state except the Closed state.

Stato di chiusura è equivalente all'eliminazione e la configurazione dell'oggetto può essere ancora controllata.The Closed state is equivalent to being disposed and the configuration of the object can still be inspected.

Consente di indicare che l'oggetto ha eseguito la transizione a uno stato in cui non è più può essere utilizzato lo stato Faulted.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 Faulted non è chiuso ed è possibile che contenga le 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, un CommunicationObjectFaultedException viene generata 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