ChannelBase Klasse

Definition

Stellt die Basisimplementierung für benutzerdefinierte Kanäle bereit.

public ref class ChannelBase abstract : System::ServiceModel::Channels::CommunicationObject, System::ServiceModel::Channels::IChannel, System::ServiceModel::IDefaultCommunicationTimeouts
public abstract class ChannelBase : System.ServiceModel.Channels.CommunicationObject, System.ServiceModel.Channels.IChannel, System.ServiceModel.IDefaultCommunicationTimeouts
type ChannelBase = class
    inherit CommunicationObject
    interface IChannel
    interface ICommunicationObject
    interface IDefaultCommunicationTimeouts
Public MustInherit Class ChannelBase
Inherits CommunicationObject
Implements IChannel, IDefaultCommunicationTimeouts
Vererbung
Abgeleitet
Implementiert

Hinweise

Wichtig

Das Aufrufen von Methoden aus dieser Klasse mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Rufen Sie die Methoden aus dieser Klasse nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.

Die ChannelBase-Klasse stellt eine abstrakte Basisklassenimplementierung der Schnittstelle des IChannel bereit. Es ist erforderlich, dass jeder Kanal einem Kanal-Manager zugeordnet wird. Beachten Sie, dass der einzige verfügbare Konstruktor zum Erstellen von ChannelBase-Instanzen einen channelManager-Eingabeparameter benötigt.

Zustandsänderungen werden durch Vererben von der CommunicationObject-Implementierung des Statuscomputers verwaltet.

Die ChannelBase erhält ihre Kommunikations-Standardtimeoutwerte für das Öffnen, Senden, Empfangen und Schließen von der zugeordneten ChannelManagerBase.

Der ChannelBase verwaltet auch den Manager für Sie. Zusätzlich zum Bereitstellen eines Verweises auf den Manager benachrichtigt die Basisklasse den Manager, wenn Kanäle erstellt und zerstört werden. Doch der Verweis auf den Manager ist nur gültig, bis der Kanal gelöscht wird.

Selbst wenn Sie die Basisklasse verwenden, müssen Sie Verhaltensweisen für das Öffnen und Schließen des Kanals bereitstellen. Die Standardimplementierungen dieser Methoden stellen keine nützlichen Informationen bereit.

Sie müssen auch GetProperty überschreiben, wenn Sie einen Kanal implementieren. GetProperty ist eine hervorragende Möglichkeit, Informationen entlang des Kanalstapels zu kommunizieren, ohne wissen zu müssen, welche Kanäle sich unter Ihnen befinden oder welche Kanäle Sie darüber abfragen können. Definieren Sie Schnittstellen, die nach verfügbaren Informationen abgefragt werden können. Wenn Sie das Typargument für GetProperty nicht erkennen, delegieren Sie zum nächsten Kanal im Stapel herunter oder kehren Sie zu null zurück, wenn Sie am unteren Ende des Stapels einen neuen Transportkanal erstellen.

Konstruktoren

ChannelBase(ChannelManagerBase)

Initialisiert eine neue Instanz der ChannelBase-Klasse.

Eigenschaften

DefaultCloseTimeout

Ruft das Standardzeitintervall ab, das für den Abschluss eines Schließvorgangs bereitgestellt wird.

DefaultOpenTimeout

Ruft das Zeitintervall ab, das für den Abschluss eines Öffnungsvorgangs bereitgestellt wird.

DefaultReceiveTimeout

Ruft das Standardzeitintervall ab, das für den Abschluss eines Empfangsvorgangs bereitgestellt wird, oder legt dieses fest.

DefaultSendTimeout

Ruft das Standardzeitintervall ab, das für den Abschluss eines Sendevorgangs bereitgestellt wird, oder legt dieses fest.

IsDisposed

Ruft einen Wert ab, mit dem angegeben wird, ob das Kommunikationsobjekt verworfen wurde.

(Geerbt von CommunicationObject)
Manager

Ruft den Kanal-Manager ab, der dem aktuellen Kanal zugeordnet ist.

State

Ruft einen Wert ab, der den aktuellen Zustand des Kommunikationsobjekts angibt.

(Geerbt von CommunicationObject)
ThisLock

Ruft die gegenseitig exklusive Sperre ab, die die Klasseninstanz während eines Zustandsübergangs schützt.

(Geerbt von CommunicationObject)

Methoden

Abort()

Bewirkt, dass ein Kommunikationsobjekt unmittelbar vom aktuellen Zustand in den Schließzustand übergeht.

(Geerbt von CommunicationObject)
BeginClose(AsyncCallback, Object)

Startet einen asynchronen Vorgang, um ein Kommunikationsobjekt zu schließen.

(Geerbt von CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Startet einen asynchronen Vorgang, um ein Kommunikationsobjekt mit einem festgelegten Timeout zu schließen.

(Geerbt von CommunicationObject)
BeginOpen(AsyncCallback, Object)

Startet einen asynchronen Vorgang, um ein Kommunikationsobjekt zu öffnen.

(Geerbt von CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Startet einen asynchronen Vorgang, um ein Kommunikationsobjekt innerhalb eines festgelegten Zeitraums zu öffnen.

(Geerbt von CommunicationObject)
Close()

Bewirkt, dass ein Kommunikationsobjekt vom aktuellen Zustand in den geschlossenen Zustand übergeht.

(Geerbt von CommunicationObject)
Close(TimeSpan)

Bewirkt den Übergang eines Kommunikationsobjekts innerhalb eines angegebenen Zeitraums vom aktuellen Zustand in den geschlossenen Zustand.

(Geerbt von CommunicationObject)
EndClose(IAsyncResult)

Beendet einen asynchronen Vorgang, um ein Kommunikationsobjekt zu schließen.

(Geerbt von CommunicationObject)
EndOpen(IAsyncResult)

Beendet einen asynchronen Vorgang, um ein Kommunikationsobjekt zu öffnen.

(Geerbt von CommunicationObject)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Fault()

Bewirkt, dass ein Kommunikationsobjekt vom aktuellen Zustand in den Fehlerzustand übergeht.

(Geerbt von CommunicationObject)
GetCommunicationObjectType()

Ruft den Typ des Kommunikationsobjekts ab.

(Geerbt von CommunicationObject)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetProperty<T>()

Gibt ggf. das angeforderte typisierte Objekt von der entsprechenden Ebene im Kanalstapel zurück.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnAbort()

Setzt Verarbeitung auf einem Kommunikationsobjekt ein, nachdem aufgrund des Aufrufs eines synchronen Abbruchvorgangs der Übergang zum Schließen-Status eingesetzt hat.

(Geerbt von CommunicationObject)
OnBeginClose(TimeSpan, AsyncCallback, Object)

Fügt nach dem Übergang des Kommunikationsobjekts in den Schließzustand aufgrund des Aufrufs eines asynchronen Schließvorgangs Verarbeitungen ein.

(Geerbt von CommunicationObject)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

Fügt Verarbeitung auf einem Kommunikationsobjekt ein, nachdem aufgrund des Aufrufs eines asynchronen Öffnungsvorgangs der Übergang in den Öffnungszustand stattgefunden hat.

(Geerbt von CommunicationObject)
OnClose(TimeSpan)

Fügt Verarbeitung auf einem Kommunikationsobjekt ein, nachdem aufgrund des Aufrufs eines synchronen Schließvorgangs der Übergang zum Schließenzustand stattgefunden hat.

(Geerbt von CommunicationObject)
OnCloseAsync(TimeSpan)

Stellt die Basisimplementierung für benutzerdefinierte Kanäle bereit.

(Geerbt von CommunicationObject)
OnClosed()

Verwendet Diagnoseablaufverfolgung während des Übergangs in den Schließzustand.

OnClosing()

Wird während des Übergangs eines Kommunikationsobjekts in den Schließzustand aufgerufen.

(Geerbt von CommunicationObject)
OnEndClose(IAsyncResult)

Beendet beim Schließen eines Kommunikationsobjekts einen asynchronen Vorgang.

(Geerbt von CommunicationObject)
OnEndOpen(IAsyncResult)

Beendet beim Öffnen eines Kommunikationsobjekts einen asynchronen Vorgang.

(Geerbt von CommunicationObject)
OnFaulted()

Fügt Verarbeitung auf einem Kommunikationsobjekt ein, nachdem aufgrund des Aufrufs eines synchronen Fehlervorgangs der Übergang zum Fehlerzustand stattgefunden hat.

(Geerbt von CommunicationObject)
OnOpen(TimeSpan)

Fügt Verarbeitung auf einem Kommunikationsobjekt ein, nachdem der Übergang zum Öffnungsstatus stattgefunden hat, der innerhalb eines festgelegten Zeitintervalls abgeschlossen sein muss.

(Geerbt von CommunicationObject)
OnOpenAsync(TimeSpan)

Stellt die Basisimplementierung für benutzerdefinierte Kanäle bereit.

(Geerbt von CommunicationObject)
OnOpened()

Wird während des Übergangs eines Kommunikationsobjekts in den Geöffnet-Zustand aufgerufen.

(Geerbt von CommunicationObject)
OnOpening()

Wird während des Übergangs eines Kommunikationsobjekts in den Öffnungszustand aufgerufen.

(Geerbt von CommunicationObject)
Open()

Bewirkt den Übergang eines Kommunikationsobjekts aus dem Erstellt-Zustand in den Geöffnet-Zustand.

(Geerbt von CommunicationObject)
Open(TimeSpan)

Bewirkt den Übergang eines Kommunikationsobjekts innerhalb eines angegebenen Zeitraums vom Erstellt-Zustand in den Geöffnet-Zustand.

(Geerbt von CommunicationObject)
ThrowIfDisposed()

Löst eine Ausnahme aus, wenn das Kommunikationsobjekt verworfen wird.

(Geerbt von CommunicationObject)
ThrowIfDisposedOrImmutable()

Löst eine Ausnahme aus, wenn das Kommunikationsobjekt der State-Eigenschaft nicht auf den Created-Zustand festgelegt wurde.

(Geerbt von CommunicationObject)
ThrowIfDisposedOrNotOpen()

Löst eine Ausnahme aus, wenn sich das Kommunikationsobjekt nicht im Opened-Zustand befindet.

(Geerbt von CommunicationObject)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Ereignisse

Closed

Tritt ein, sobald ein Kommunikationsobjekt in den geschlossenen Zustand übergeht.

(Geerbt von CommunicationObject)
Closing

Tritt ein, sobald ein Kommunikationsobjekt in den Schließzustand übergeht.

(Geerbt von CommunicationObject)
Faulted

Tritt ein, sobald ein Kommunikationsobjekt in den Fehlerzustand übergeht.

(Geerbt von CommunicationObject)
Opened

Tritt ein, sobald ein Kommunikationsobjekt in den Geöffnet-Zustand übergeht.

(Geerbt von CommunicationObject)
Opening

Tritt ein, sobald ein Kommunikationsobjekt in den Öffnungszustand übergeht.

(Geerbt von CommunicationObject)

Explizite Schnittstellenimplementierungen

IAsyncCommunicationObject.CloseAsync(TimeSpan)

Stellt die Basisimplementierung für benutzerdefinierte Kanäle bereit.

(Geerbt von CommunicationObject)
IAsyncCommunicationObject.OpenAsync(TimeSpan)

Stellt die Basisimplementierung für benutzerdefinierte Kanäle bereit.

(Geerbt von CommunicationObject)
IDefaultCommunicationTimeouts.CloseTimeout

Ruft das Zeitintervall ab, nach dem die von einem Kommunikationsobjekt aufgerufene Schließmethode das Zeitlimit überschreitet.

IDefaultCommunicationTimeouts.OpenTimeout

Ruft das Zeitintervall ab, nach dem die von einem Kommunikationsobjekt aufgerufene Öffnungsmethode das Zeitlimit überschreitet.

IDefaultCommunicationTimeouts.ReceiveTimeout

Ruft das Zeitintervall ab, nach dem die von einem Kommunikationsobjekt aufgerufene Empfangsmethode das Zeitlimit überschreitet.

IDefaultCommunicationTimeouts.SendTimeout

Ruft das Zeitintervall ab, nach dem die von einem Kommunikationsobjekt aufgerufene Sendemethode das Zeitlimit überschreitet.

Erweiterungsmethoden

CloseHelperAsync(ICommunicationObject, TimeSpan)

Stellt die Basisimplementierung für benutzerdefinierte Kanäle bereit.

OpenHelperAsync(ICommunicationObject, TimeSpan)

Stellt die Basisimplementierung für benutzerdefinierte Kanäle bereit.

GetInternalCloseTimeout(CommunicationObject)

Stellt die Basisimplementierung für benutzerdefinierte Kanäle bereit.

Gilt für: