Teilen über


ContextBindingElement Klasse

Definition

Bietet einen Schutzgrad und einen Austauschmechanismus als Teil des Kontextes eines Bindungselements und die Funktionen zum Erstellen der Kanallistener und -factorys.

public ref class ContextBindingElement : System::ServiceModel::Channels::BindingElement, System::ServiceModel::Channels::IContextBindingElement, System::ServiceModel::Description::IPolicyExportExtension
public class ContextBindingElement : System.ServiceModel.Channels.BindingElement, System.ServiceModel.Channels.IContextBindingElement, System.ServiceModel.Description.IPolicyExportExtension
type ContextBindingElement = class
    inherit BindingElement
    interface IPolicyExportExtension
    interface IContextBindingElement
Public Class ContextBindingElement
Inherits BindingElement
Implements IContextBindingElement, IPolicyExportExtension
Vererbung
ContextBindingElement
Implementiert

Hinweise

Das ContextBindingElement ermöglicht dem Benutzer das Hinzufügen eines Elements zur Bindung eines Dienstes zur Verwaltung seines Kontextaustauschprotokolls. Das ContextBindingElement wird in der Regel oberhalb von Zuverlässigkeits-, Sicherheits- und Transportbindungselementen angeordnet. Ein ContextBindingElement erfordert keine Konfigurationsoptionen und kann Kanalfactorys für IRequestChannel, IRequestSessionChannel und IDuplexSessionChannel erstellen. Es kann auch Kanallistener für IReplyChannel, IReplySessionChannel und IDuplexSessionChannel erstellen. Ein Kontextkanal ändert die Kanalschnittstelle nicht. Der zugrunde liegende Kanalstapel muss die angeforderte Kanalform und Sitzungsfunktion unterstützen.

Mithilfe der Kanallistener und -factorys wird der Teil der Kanalstapel für die Verarbeitung eingehender und ausgehender Nachrichten erstellt.

Hinweis

Wenn eine sitzungsbasierte Bindung mit einem erstellt und mit einem ContextBindingElement Vertrag verwendet wird, der angibtNotAllowedSessionMode = , wird ein InvalidOperationException ausgelöst, wenn der Kanal mit dem folgenden Text erstellt wird: "Kanalkontextverwaltung kann nach dem Öffnen des Kanals nicht aktiviert oder deaktiviert werden." Sie müssen auf Allowed einen sitzungsbasierten Kanal festlegen SessionMode oder Required nicht verwenden.

Beim Erstellen einer benutzerdefinierten Bindung wird empfohlen, das ContextBindingElement der BindingElementCollection der benutzerdefinierten Bindung hinzufügen, bevor Zuverlässigkeits- und Sicherheitsbindungselemente hinzugefügt werden, falls vorhanden. Andernfalls löst der Dienst möglicherweise eine ProtocolException mit der folgenden Meldung aus:

"Der Kontextkanal hat eine Nachricht mit einem Kontext empfangen, der nicht dem aktuellen, im Kanal zwischengespeicherten Kontext entspricht. Stellen Sie sicher, dass der Dienst den Kontext nicht ändert, nachdem er ursprünglich festgelegt wurde, oder deaktivieren Sie die Kontextverwaltung, indem Sie die Kanaleigenschaft 'IContextManager.Enabled' auf 'false' festlegen."

Konstruktoren

ContextBindingElement()

Initialisiert eine neue Instanz der ContextBindingElement-Klasse.

ContextBindingElement(ProtectionLevel)

Initialisiert eine neue Instanz der ContextBindingElement-Klasse mit einem angegebenen Schutzgrad.

ContextBindingElement(ProtectionLevel, ContextExchangeMechanism)

Initialisiert eine neue Instanz der ContextBindingElement-Klasse mit einem angegebenen Schutzgrad und Austauschmechanismus.

ContextBindingElement(ProtectionLevel, ContextExchangeMechanism, Uri)

Initialisiert eine neue Instanz der ContextBindingElement-Klasse mit einer angegebenen Schutzebene, einem Kontextaustauschmechanismus und einer Clientrückrufadresse.

ContextBindingElement(ProtectionLevel, ContextExchangeMechanism, Uri, Boolean)

Initialisiert eine neue Instanz der ContextBindingElement-Klasse mit der angegebenen Schutzebene, dem Kontextaustauschmechanismus, der Clientrückrufadresse und einem Wert, der angibt, ob die Kontextverwaltung aktiviert wird.

Eigenschaften

ClientCallbackAddress

Ruft die Clientrückrufadresse für das Bindungselement ab oder legt diese fest.

ContextExchangeMechanism

Ruft den Austauschmechanismus für das Übermitteln von Kontext für das Bindungselement ab oder legt diesen fest.

ContextManagementEnabled

Ruft einen Wert ab, der angibt, ob die Kontextverwaltung aktiviert wurde, oder legt diesen fest.

ProtectionLevel

Ruft den Schutzgrad für das Bindungselement aus dem Kontext ab oder legt diesen fest.

Methoden

BuildChannelFactory<TChannel>(BindingContext)

Erstellt den Kanalfactorystapel auf dem Client, der einen angegebenen Kanaltyp für einen angegebenen Kontext erstellt.

BuildChannelListener<TChannel>(BindingContext)

Erstellt den Kanallistenerstapel auf dem Client, der einen angegebenen Kanaltyp für einen angegebenen Kontext akzeptiert.

CanBuildChannelFactory<TChannel>(BindingContext)

Gibt einen Wert zurück, der angibt, ob das aktuelle Bindungselement eine Factory für einen angegebenen Typ von Kanal und Kontext erstellen kann.

CanBuildChannelListener<TChannel>(BindingContext)

Gibt einen Wert zurück, der angibt, ob die aktuelle Bindung einen Listener für einen angegebenen Typ von Kanal und Kontext erstellen kann.

Clone()

Erstellt ein neues, aus dem aktuellen Objekt initialisiertes ContextBindingElement-Objekt.

Equals(Object)

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

(Geerbt von Object)
ExportPolicy(MetadataExporter, PolicyConversionContext)

Schreibt benutzerdefinierte Richtlinienassertionen in den Kontext des Bindungselements.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetProperty<T>(BindingContext)

Gibt das typisierte Objekt mit dem angegebenen Kontext 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)
ToString()

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

(Geerbt von Object)

Gilt für: