Sdílet prostřednictvím


CommunicationState Výčet

Definice

Definuje stavy, ve kterých ICommunicationObject může existovat.

public enum class CommunicationState
public enum CommunicationState
type CommunicationState = 
Public Enum CommunicationState
Dědičnost
CommunicationState

Pole

Closed 4

Označuje, že objekt komunikace byl uzavřen a již není použitelný.

Closing 3

Označuje, že komunikační objekt přechází do Closed stavu.

Created 0

Označuje, že je objekt komunikace vytvořený a je konfigurovatelný, ale ještě není otevřený nebo připravený k použití.

Faulted 5

Označuje, že objekt komunikace zjistil chybu nebo chybu, ze které se nedá obnovit a z něhož již není použitelný.

Opened 2

Označuje, že komunikační objekt je nyní otevřený a připravený k použití.

Opening 1

Označuje, že komunikační objekt se přechází ze Created stavu do Opened stavu.

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é k nim 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é komunikační objekt může zabírat. Hlavní stavy jsou:

  • Vytvořeno

  • Otevřít

  • Uzavřeno

  • Došlo k chybě

Dva přechodné stavy, že komunikační objekt může zabírat při přechodu mezi těmito hlavními stavy:

  • Otevření

  • Zavření

Objekt komunikace lze nakonfigurovat ve stavu Vytvoření. Jeho vlastnosti lze například změnit a jeho události je možné zaregistrovat. V tomto stavu nemůže dojít k žádnému vstupu ani výstupu. Zprávy proto 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. Pokud není u odvozených tříd uvedeno jinak, nelze nakonfigurovat objekty ve stavu otevření. Tento stav přechodu lze zadat pouze ze stavu Vytvoření.

Objekty se po dokončení otevřeného procesu převést na otevřený stav. Tento přechod na otevřený stav 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.

Zavírání 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 primární scénáře, kdy k tomu může dojít:

  • Open Pokud metoda 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 (to znamená, že obdrží zprávu protokolu v neplatnou dobu) nebo pokud vzdálený koncový bod přeruší relaci.

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ý způsobil chybu. Je-li Close volána na objekt ve stavu Selhání, je vyvolána, CommunicationObjectFaultedException protože objekt nelze řádně zavřít.

Platí pro