CommunicationState Enum
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Definieert de statussen waarin een ICommunicationObject kan bestaan.
public enum class CommunicationState
public enum CommunicationState
type CommunicationState =
Public Enum CommunicationState
- Overname
Velden
| Name | Waarde | Description |
|---|---|---|
| Created | 0 | Geeft aan dat het communicatieobject is geïnstantieerd en kan worden geconfigureerd, maar nog niet is geopend of gereed is voor gebruik. |
| Opening | 1 | Geeft aan dat het communicatieobject wordt overgezet van de Created status naar de Opened status. |
| Opened | 2 | Geeft aan dat het communicatieobject nu is geopend en klaar is om te worden gebruikt. |
| Closing | 3 | Geeft aan dat het communicatieobject overgaat naar de Closed status. |
| Closed | 4 | Geeft aan dat het communicatieobject is gesloten en niet meer bruikbaar is. |
| Faulted | 5 | Geeft aan dat het communicatieobject een fout of fout heeft aangetroffen waaruit het niet kan herstellen en waarvan het niet meer bruikbaar is. |
Opmerkingen
Deze opsomming definieert de statussen die geldig zijn voor alle communicatieobjecten in het systeem, waaronder kanalen, listeners, factory's, dispatchers en servicehosts.
De methoden voor het beheren van overgangen tussen deze statussen en de gebeurtenissen die eraan kunnen worden gekoppeld, worden gedefinieerd in de ICommunicationObject interface. De status van een object kan worden verkregen met behulp van de State eigenschap.
Er zijn vier hoofdtoestanden en twee tijdelijke toestanden die een communicatieobject kan innemen. De belangrijkste staten zijn:
Gemaakt
Geopend
Gesloten
Met fout
De twee transitieve statussen die een communicatieobject kan innemen bij de overgang tussen deze hoofdtoestanden zijn:
Opening
Afsluiting
Het communicatieobject kan worden geconfigureerd in de status Gemaakt. De eigenschappen kunnen bijvoorbeeld worden gewijzigd en de bijbehorende gebeurtenissen kunnen worden geregistreerd. Er kan geen invoer of uitvoer optreden in deze status. Berichten kunnen dus niet worden verzonden of ontvangen van een kanaal in deze status.
Het openen is een tijdelijke status die het communicatieobject invoert wanneer de Open methode wordt aangeroepen. Tenzij anders vermeld in afgeleide klassen, kunnen objecten met de status Openen niet worden geconfigureerd. Deze overgangsstatus kan alleen worden ingevoerd vanuit de status Gemaakt.
Objecten worden overgezet naar de status Geopend wanneer het geopende proces is voltooid. Deze overgang naar de status Geopend is alleen geldig vanaf de status Openen. Tenzij anders vermeld bij afgeleide klassen, is de configuratie van het object nu uitgeschakeld. Op dit moment is het object volledig bruikbaar voor berichtoverdrachten.
De afsluiting is een tijdelijke status die het object invoert wanneer de Close methode wordt aangeroepen voor een probleemloos afsluiten of het object wordt afgebroken. Op dit moment wordt het object onbruikbaar (indien nog niet). Deze overgang is geldig vanaf elke status, met uitzondering van de gesloten status.
De gesloten status is gelijk aan verwijdering en de configuratie van het object kan nog steeds worden geïnspecteerd.
De status Fout wordt gebruikt om aan te geven dat het object is overgezet naar een status waarin het niet meer kan worden gebruikt. Er zijn twee primaire scenario's waarin dit kan gebeuren:
Als de Open methode om welke reden dan ook mislukt, wordt het object overgezet naar de foutstatus.
Als een sessiegebaseerd kanaal een fout detecteert waaruit het niet kan herstellen, wordt deze overgezet naar de foutstatus. Dit kan bijvoorbeeld gebeuren als er een protocolfout is (dat wil gezegd, het ontvangt een protocolbericht op een ongeldig tijdstip) of als het externe eindpunt de sessie afbreekt.
Een object met de status Defect is niet gesloten en bevat mogelijk resources. De Abort methode moet worden gebruikt om een object te sluiten dat een fout heeft opgetreden. Als Close een object met de status Defect wordt aangeroepen, wordt er een CommunicationObjectFaultedException gegenereerd omdat het object niet correct kan worden gesloten.