CommunicationState Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Definiuje stany, w których może istnieć obiekt ICommunicationObject .
public enum class CommunicationState
public enum CommunicationState
type CommunicationState =
Public Enum CommunicationState
- Dziedziczenie
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.