Udostępnij za pośrednictwem


CommunicationState Wyliczenie

Definicja

Definiuje stany, w których może istnieć obiekt ICommunicationObject .

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

Pola

Closed 4

Wskazuje, że obiekt komunikacji został zamknięty i nie jest już używany.

Closing 3

Wskazuje, że obiekt komunikacji przechodzi do Closed stanu.

Created 0

Wskazuje, że obiekt komunikacji został utworzone i można go skonfigurować, ale nie jest jeszcze otwarty ani gotowy do użycia.

Faulted 5

Wskazuje, że obiekt komunikacji napotkał błąd lub błąd, z którego nie może odzyskać i z którego nie jest już używany.

Opened 2

Wskazuje, że obiekt komunikacji jest teraz otwarty i gotowy do użycia.

Opening 1

Wskazuje, że obiekt komunikacji jest przenoszony ze Created stanu do Opened stanu.

Uwagi

Wyliczenie definiuje stany, które są prawidłowe dla wszystkich obiektów komunikacyjnych w systemie, w tym kanałów, odbiorników, fabryk, dyspozytorów i hostów usług.

Metody zarządzania przejściami między tymi stanami i zdarzeniami, które mogą być skojarzone z nimi, są definiowane w interfejsie ICommunicationObject . Stan obiektu można uzyskać przy użyciu State właściwości .

Istnieją cztery główne stany i dwa przejściowe stany, które mogą zajmować obiekt komunikacyjny. Główne stany to:

  • Utworzone

  • Otwarte

  • Zamknięty

  • Faulted

Dwa przejściowe stwierdza, że obiekt komunikacyjny może zajmować miejsce podczas przechodzenia między tymi głównymi stanami:

  • Otwieranie

  • Zamykanie

Obiekt komunikacji można skonfigurować w stanie Utworzony. Na przykład jego właściwości można zmienić, a jego zdarzenia można zarejestrować. W tym stanie nie mogą wystąpić żadne dane wejściowe ani wyjściowe. Na przykład nie można wysyłać ani odbierać komunikatów z kanału w tym stanie.

Otwarcie jest tymczasowym stanem, który obiekt komunikacji wprowadza po Open wywołaniu metody. Jeśli nie określono inaczej w klasach pochodnych, nie można skonfigurować obiektów w stanie otwierania. Ten stan przejścia można wprowadzić tylko ze stanu Utworzone.

Obiekty przechodzą do stanu Otwarte po zakończeniu procesu otwierania. To przejście do stanu Otwarte jest prawidłowe tylko z stanu Otwarcia. Jeśli nie określono inaczej w klasach pochodnych, konfiguracja obiektu jest teraz wyłączona. W tym momencie obiekt jest w pełni użyteczny dla transferów komunikatów.

Zamknięcie jest stanem tymczasowym, który wprowadza obiekt po Close wywołaniu metody w celu bezproblemowego zamknięcia lub przerwania obiektu. W tym momencie obiekt staje się (jeśli jeszcze nie) bezużyteczny. To przejście jest prawidłowe z dowolnego stanu z wyjątkiem stanu Zamknięte.

Stan Zamknięty jest odpowiednikiem usuwania, a konfiguracja obiektu może być nadal sprawdzana.

Stan błędu służy do wskazywania, że obiekt został przeniesiony do stanu, w którym nie może być już używany. Istnieją dwa podstawowe scenariusze, w których może się to zdarzyć:

  • Jeśli metoda zakończy się niepowodzeniem Open z jakiegokolwiek powodu, obiekt przechodzi do stanu uszkodzonego.

  • Jeśli kanał oparty na sesji wykryje błąd, z którego nie można go odzyskać, przechodzi do stanu błędu. Może się to zdarzyć na przykład w przypadku wystąpienia błędu protokołu (czyli odebrania komunikatu protokołu w nieprawidłowym czasie) lub przerwania sesji przez zdalny punkt końcowy.

Obiekt w stanie Błędy nie jest zamknięty i może zawierać zasoby. Metoda Abort powinna służyć do zamknięcia obiektu, który uległ awarii. Jeśli Close obiekt jest wywoływany w stanie Błędy, jest zgłaszany, CommunicationObjectFaultedException ponieważ obiekt nie może być bezpiecznie zamknięty.

Dotyczy