CommunicationState Wyliczenie

Definicja

Definiuje Stany, w których ICommunicationObject może istnieć.Defines the states in which an ICommunicationObject can exist.

public enum class CommunicationState
public enum CommunicationState
type CommunicationState = 
Public Enum CommunicationState
Dziedziczenie
CommunicationState

Pola

Closed 4

Wskazuje, że obiekt komunikacyjny został zamknięty i nie jest już używany.Indicates that the communication object has been closed and is no longer usable.

Closing 3

Wskazuje, że obiekt komunikacyjny przechodzi do Closed stanu.Indicates that the communication object is transitioning to the Closed state.

Created 0

Wskazuje, że obiekt komunikacyjny został skonkretyzowany i jest konfigurowalny, ale nie jest jeszcze otwarty lub gotowy do użycia.Indicates that the communication object has been instantiated and is configurable, but not yet open or ready for use.

Faulted 5

Wskazuje, że obiekt komunikacyjny napotkał błąd lub usterkę, z której nie może odzyskać sprawności i z której nie jest już możliwe.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

Wskazuje, że obiekt komunikacyjny jest teraz otwarty i gotowy do użycia.Indicates that the communication object is now open and ready to be used.

Opening 1

Wskazuje, że obiekt komunikacyjny jest przenoszony ze Created stanu do Opened stanu.Indicates that the communication object is being transitioned from the Created state to the Opened state.

Uwagi

To Wyliczenie definiuje Stany, które są prawidłowe dla wszystkich obiektów komunikacji w systemie, w tym kanałów, odbiorników, fabryk, odniesień i hostów usług.This enumeration defines the states that are valid for all communication objects in the system, including channels, listeners, factories, dispatchers, and service hosts.

Metody, które zarządzają przejściami między tymi stanami i zdarzenia, które mogą być skojarzone z nimi, są zdefiniowane w ICommunicationObject interfejsie.The methods that manage transitions between these states and the events that can be associated with them are defined in the ICommunicationObject interface. Stan obiektu można uzyskać przy użyciu State właściwości.The state of an object can be obtained using the State property.

Istnieją cztery główne Stany i dwa stany przejściowe, które może zajmować obiekt komunikacyjny.There are four main states and two transient states that a communication object can occupy. Główne Stany to:The main states are:

  • UtworzoneCreated

  • OtworzyćOpened

  • ZamkniętyClosed

  • FaultedFaulted

Dwoma stanami przejściowymi, które może zajmować obiekt komunikacyjny podczas przechodzenia między tymi Stanami głównymi są:The two transitory states that a communication object can occupy when transitioning between these main states are:

  • OtwieranieOpening

  • ZamykanieClosing

Obiekt komunikacyjny można skonfigurować w stanie created.The communication object can be configured in the Created state. Na przykład jego właściwości można zmienić i można zarejestrować jego zdarzenia.For example, its properties can be changed, and its events can be registered. W tym stanie nie mogą wystąpić żadne dane wejściowe ani wyjściowe.No input or output can occur in this state. Nie można na przykład wysyłać ani odbierać komunikatów z kanału w tym stanie.So messages, for example, cannot be sent or received from a channel in this state.

Otwarcie jest tymczasowym stanem, który przechodzi przez obiekt komunikacyjny, gdy Open wywoływana jest metoda.The Opening is a temporary state that the communication object enters when the Open method is invoked. O ile nie zaznaczono inaczej w klasach pochodnych, nie można skonfigurować obiektów w stanie otwarcia.Unless otherwise noted on derived classes, objects in the opening state cannot be configured. Ten stan przejścia można wprowadzać tylko ze stanu utworzonego.This transition state can only be entered from the Created state.

Obiekty są przenoszone do stanu otwartego po zakończeniu procesu otwierania.Objects transition to the Opened state when the open process completes. To przejście do stanu otwartego jest prawidłowe tylko w stanie otwarcia.This transition to the Opened state is only valid from the Opening state. O ile nie zaznaczono inaczej w klasach pochodnych, konfiguracja obiektu jest teraz wyłączona.Unless otherwise noted on derived classes, the configuration of the object is now disabled. W tym momencie obiekt jest w pełni przydatny do transferów komunikatów.At this point, the object is fully usable for message transfers.

Zamykanie jest tymczasowym stanem, który jest wywoływany przez obiekt, gdy Close wywoływana jest metoda dla bezpiecznego zamknięcia lub obiekt został przerwany.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. W tym momencie obiekt stanie się nieużyteczny (jeśli nie został jeszcze).At this point, the object becomes (if not already) unusable. To przejście jest prawidłowe z dowolnego stanu, z wyjątkiem stanu zamkniętego.This transition is valid from any state except the Closed state.

Stan zamknięcia jest równoznaczny z likwidacją i nadal można sprawdzić konfigurację obiektu.The Closed state is equivalent to being disposed and the configuration of the object can still be inspected.

Stan błędu jest używany do wskazania, że obiekt przeszedł do stanu, w którym nie może być już używany.The Faulted state is used to indicate that the object has transitioned to a state where it can no longer be used. Istnieją dwa podstawowe scenariusze, w których może się to zdarzyć:There are two primary scenarios where this can happen:

  • Jeśli Open Metoda zakończy się niepowodzeniem z jakiegokolwiek powodu, obiekt przechodzi do stanu błędu.If the Open method fails for any reason, the object transitions to the faulted state.

  • Jeśli kanał oparty na sesji wykrywa błąd, którego nie można odzyskać, przechodzi do stanu błędu.If a session-based channel detects an error that it cannot recover from, it transitions to the faulted state. Taka sytuacja może wystąpić, jeśli wystąpi błąd protokołu (czyli odbiera komunikat protokołu o nieprawidłowym czasie) lub jeśli zdalny punkt końcowy przerywa sesję.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.

Obiekt w stanie błędu nie jest zamknięty i może zawierać zasoby.An object in the Faulted state is not closed and may be holding resources. AbortMetoda powinna służyć do zamykania obiektu, w którym wystąpił błąd.The Abort method should be used to close an object that has faulted. Jeśli Close jest wywoływana dla obiektu w stanie błędu, CommunicationObjectFaultedException jest zgłaszany, ponieważ nie można bezpiecznie zamknąć obiektu.If Close is called on an object in the Faulted state, a CommunicationObjectFaultedException is thrown because the object cannot be gracefully closed.

Dotyczy