Freigeben über


CommunicationState Enumeration

Definition

Definiert die Zustände, in denen ein ICommunicationObject existieren kann.

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

Felder

Closed 4

Gibt an, dass das Kommunikationsobjekt geschlossen wurde und nicht länger verwendbar ist.

Closing 3

Gibt an, dass das Kommunikationsobjekt in den Zustand Closed übergeht.

Created 0

Gibt an, dass das Kommunikationsobjekt instantiiert wurde und konfigurierbar ist, jedoch noch nicht geöffnet oder bereit für die Verwendung.

Faulted 5

Gibt an, dass das Kommunikationsobjekt auf einen Fehler gestoßen ist, den es nicht beheben kann und ab dem es nicht mehr verwendbar ist.

Opened 2

Gibt an, dass das Kommunikationsobjekt jetzt geöffnet und verwendungsbereit ist.

Opening 1

Gibt an, dass das Kommunikationsobjekt vom Zustand Created in den Zustand Opened übergeht.

Hinweise

Diese Enumeration definiert die Zustände, die für alle Kommunikationsobjekte im System gültig sind, einschließlich Kanäle, Listener, Factorys, Verteiler und Diensthosts.

Die Methoden, die die Übergänge zwischen diesen Zuständen und den Ereignissen verwalten, die diesen zugeordnet werden können, werden in der ICommunicationObject-Schnittstelle definiert. Der Zustand eines Objekts kann unter Verwendung der State-Eigenschaft abgerufen werden.

Es gibt vier Hauptzustände und zwei flüchtige Zustände, die ein Kommunikationsobjekt einnehmen kann. Die Hauptzustände sind:

  • Erstellt

  • Geöffnet

  • Geschlossen

  • Fehlerhaft

Die zwei flüchtigen Zustände, die ein Kommunikationsobjekt beim Übergang zwischen diesen Hauptzuständen einnehmen kann, sind:

  • Öffnen

  • Schließen

Das Kommunikationsobjekt kann im erstellten Zustand konfiguriert werden. Es können beispielsweise seine Eigenschaften geändert und seine Ereignisse registriert werden. In diesem Zustand kann keine Eingabe oder Ausgabe erfolgen. Daher können beispielsweise keine Meldungen aus einem Kanal in diesem Zustand gesendet oder von diesem empfangen werden.

Das Öffnen ist ein temporärer Zustand, in den das Kommunikationsobjekt eingegeben wird, wenn die Open Methode aufgerufen wird. Sofern nicht anderweitig für abgeleitete Klassen angegeben, können Objekte im Öffnungszustand nicht konfiguriert werden. Dieser Übergangszustand kann nur aus dem erstellten Zustand eingegeben werden.

Objekte wechseln zum geöffneten Zustand, wenn der geöffnete Prozess abgeschlossen ist. Dieser Übergang zum geöffneten Zustand ist nur vom Öffnen-Zustand gültig. Sofern nicht anderweitig für abgeleitete Klassen angegeben, ist die Konfiguration des Objekts nun deaktiviert. Zu diesem Zeitpunkt kann das Objekt in vollem Umfang für die Meldungsübertragung verwendet werden.

Der Schließende Zustand ist ein temporärer Zustand, in den das Objekt eingegeben wird, wenn die Close Methode für ein fähiges Herunterfahren aufgerufen wird oder das Objekt abgebrochen wird. An diesem Punkt wird das Objekt nicht mehr verwendbar (wenn es dies nicht bereits ist). Dieser Übergang ist von jedem Status gültig, außer dem geschlossenen Zustand.

Der Geschlossene Zustand entspricht der Entsorgung, und die Konfiguration des Objekts kann weiterhin überprüft werden.

Der fehlerhafte Zustand wird verwendet, um anzugeben, dass das Objekt zu einem Zustand überstieg, in dem er nicht mehr verwendet werden kann. Es gibt zwei primäre Szenarien, in denen dies geschehen kann.

  • Wenn die Open-Methode fehlschlägt, geht das Objekt in den Fehlerzustand über.

  • Wenn ein sitzungsbasierter Kanal einen Fehler feststellt, den er nicht beheben kann, geht er in den Fehlerzustand über. Dies kann beispielsweise geschehen, wenn ein Protokollfehler vorliegt (d. h., eine Protokollmeldung wird zu einem ungültigen Zeitpunkt empfangen), oder wenn der Remoteendpunkt die Sitzung abbricht.

Ein Objekt im fehlerhaften Zustand ist nicht geschlossen und kann Ressourcen halten. Die Abort-Methode sollte verwendet werden, um ein Objekt zu schließen, bei dem ein Fehler aufgetreten ist. Wenn Close ein Objekt im fehlerhaften Zustand aufgerufen wird, wird eine CommunicationObjectFaultedException ausgelöst, da das Objekt nicht ordnungsgemäß geschlossen werden kann.

Gilt für