CommunicationState Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Definuje stavy, ve kterých může existovat ICommunicationObject.
public enum class CommunicationState
public enum CommunicationState
type CommunicationState =
Public Enum CommunicationState
- Dědičnost
Pole
| Name | Hodnota | Description |
|---|---|---|
| Created | 0 | Označuje, že komunikační objekt byl vytvořena instance a je konfigurovatelný, ale ještě není otevřený nebo připravený k použití. |
| Opening | 1 | Označuje, že komunikační objekt je převeden ze Created stavu do Opened stavu. |
| Opened | 2 | Označuje, že komunikační objekt je nyní otevřený a připravený k použití. |
| Closing | 3 | Označuje, že komunikační objekt přechází do Closed stavu. |
| Closed | 4 | Označuje, že komunikační objekt byl uzavřen a již není použitelný. |
| Faulted | 5 | Označuje, že komunikační objekt narazil na chybu nebo chybu, ze které nelze obnovit a ze kterého již není použitelný. |
Poznámky
Tento výčet definuje stavy platné pro všechny komunikační objekty v systému, včetně kanálů, naslouchacích procesů, továren, dispečerů a hostitelů služeb.
Metody, které spravují přechody mezi těmito stavy a událostmi, které je možné s nimi přidružit, jsou definovány v ICommunicationObject rozhraní. Stav objektu lze získat pomocí State vlastnosti.
Existují čtyři hlavní stavy a dva přechodné stavy, které může objekt komunikace zabírat. Mezi hlavní stavy patří:
Vytvořeno
Otevřeno
Zavřeno
S chybou
Dva přechodné stavy, že komunikační objekt může zabírat při přechodu mezi těmito hlavními stavy:
Otevření
Uzavření
Komunikační objekt lze nakonfigurovat ve stavu Vytvoření. Vlastnosti se dají například změnit a události se dají zaregistrovat. V tomto stavu nemůže dojít k žádnému vstupu ani výstupu. Zprávy například nelze odeslat ani přijímat z kanálu v tomto stavu.
Otevření je dočasný stav, který komunikační objekt zadá při Open vyvolání metody. Není-li u odvozených tříd uvedeno jinak, nelze konfigurovat objekty ve stavu otevření. Tento stav přechodu lze zadat pouze ze stavu Vytvoření.
Objekty po dokončení otevřeného procesu přecházejí do stavu Otevření. Tento přechod do stavu Otevření je platný pouze ze stavu Otevření. Pokud není u odvozených tříd uvedeno jinak, konfigurace objektu je nyní zakázána. V tomto okamžiku je objekt plně použitelný pro přenosy zpráv.
Závěr je dočasný stav, který objekt zadá při Close vyvolání metody pro řádné vypnutí nebo je objekt přerušen. V tomto okamžiku se objekt stane (pokud ještě není) nepoužitelný. Tento přechod je platný z libovolného stavu s výjimkou uzavřeného stavu.
Uzavřený stav je ekvivalentem vyřazení a konfigurace objektu je stále možné zkontrolovat.
Chybný stav se používá k označení, že objekt přešel do stavu, ve kterém již nelze použít. Existují dva hlavní scénáře, kdy k tomu může dojít:
Pokud metoda Open z nějakého důvodu selže, objekt přejde do chybného stavu.
Pokud kanál založený na relaci zjistí chybu, ze které se nemůže zotavit, přejde do chybného stavu. K tomu může dojít například v případě, že dojde k chybě protokolu (tj. v neplatné době obdrží zprávu protokolu) nebo pokud vzdálený koncový bod relaci přeruší.
Objekt ve stavu Selhání není uzavřen a může obsahovat prostředky. Metoda Abort by se měla použít k zavření objektu, který je chybný. Je-li Close volána na objektu ve stavu Selhání, je vyvolána, CommunicationObjectFaultedException protože objekt nelze řádně zavřít.