EndpointDispatcher Klasse

Definition

Entspricht dem Laufzeitobjekt, das Eigenschaften verfügbar macht, durch die das Einfügen von Laufzeiterweiterungen oder Änderungen für Nachrichten in Dienstanwendungen ermöglicht wird.

public ref class EndpointDispatcher
public ref class EndpointDispatcher sealed
public class EndpointDispatcher
public sealed class EndpointDispatcher
type EndpointDispatcher = class
Public Class EndpointDispatcher
Public NotInheritable Class EndpointDispatcher
Vererbung
EndpointDispatcher

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie der EndpointDispatcher zum Suchen nach der System.ServiceModel.Dispatcher.DispatchRuntime für den Endpunkt verwendet wird. Außerdem wird ein benutzerdefinierter Nachrichteninspektor unter Verwendung eines Endpunktverhaltens eingefügt.

// IEndpointBehavior Members
public void AddBindingParameters(ServiceEndpoint serviceEndpoint, System.ServiceModel.Channels.BindingParameterCollection bindingParameters)
{
  return;
}

public void ApplyClientBehavior(ServiceEndpoint serviceEndpoint, ClientRuntime behavior)
{
  behavior.MessageInspectors.Add(new EndpointBehaviorMessageInspector());
}

public void ApplyDispatchBehavior(ServiceEndpoint serviceEndpoint, EndpointDispatcher endpointDispatcher)
{
  endpointDispatcher.DispatchRuntime.MessageInspectors.Add(new EndpointBehaviorMessageInspector());
}

public void Validate(ServiceEndpoint serviceEndpoint)
{
  return;
}

Hinweise

Die EndpointDispatcher-Klasse und die System.ServiceModel.Dispatcher.DispatchRuntime-Klasse machen die Laufzeitanpassungspunkte für Endpunkte in einem Dienst verfügbar. Der EndpointDispatcher kann verwendet werden, um die Nachrichten, die er verarbeiten kann, und bestimmte auf den Endpunkt bezogene Informationen zu steuern. Die DispatchRuntime verfügt über eine große Anzahl von Eigenschaften, die verwendet werden, um benutzerdefinierte Erweiterungen in die endpunktweite Laufzeit einzufügen.

Das EndpointDispatcher-Objekt ist verantwortlich für das Verarbeiten von Nachrichten von einem System.ServiceModel.Dispatcher.ChannelDispatcher, wenn die Zieladresse einer Nachricht mit der AddressFilter-Eigenschaft übereinstimmt und die Nachrichtenaktion mit der ContractFilter-Eigenschaft übereinstimmt. Wenn zwei EndpointDispatcher-Objekte eine Nachricht akzeptieren können, bestimmt der Wert der FilterPriority-Eigenschaft den Endpunkt mit höherer Priorität.

Verwenden Sie das EndpointDispatcher-Objekt, um den Prozess des Empfangs von Nachrichten vom zugeordneten ChannelDispatcher zu konfigurieren oder zu erweitern, wobei Nachrichtenobjekte in als Parameter verwendete Objekte konvertiert werden und ein Endpunktvorgang sowie der umgekehrte Vorgang aufgerufen werden.

In der Regel wird der EndpointDispatcher für einen Endpunkt durch Implementieren der IEndpointBehavior-Schnittstelle ermittelt, aber Sie können auch von anderen Verhaltensschnittstellen auf den EndpointDispatcher zugreifen.

Die folgenden EndpointDispatcher-Eigenschaften können verwendet werden:

  • Die AddressFilter-Eigenschaft ermöglicht es, ein MessageFilter-Objekt abzurufen oder festzulegen, das der ChannelDispatcher verwendet, um zu ermitteln, ob der Endpunkt eine bestimmte Nachricht verarbeiten kann.

  • Die ChannelDispatcher-Eigenschaft ruft das zugeordnete ChannelDispatcher-Objekt ab, das Nachrichten an den EndpointDispatcher sendet und von diesem empfängt und das verwendet werden kann, um andere auf den Kanal bezogene Werte und Verhaltensweisen zu überprüfen oder zu ändern.

  • Der ContractFilter ruft das MessageFilter-Objekt ab, das verwendet wird, um zu ermitteln, ob eine Nachricht für diesen Vertrag bestimmt ist.

  • Die Eigenschaften ContractName und ContractNamespace geben den Namen und den Namespace des Endpunktvertrags zurück.

  • Die DispatchRuntime-Eigenschaft gibt das DispatchRuntime-Objekt zurück, das Sie verwenden können, um Laufzeitwerte zu ändern oder benutzerdefinierte Laufzeiterweiterungen für den gesamten Endpunkt einzufügen.

  • Die EndpointAddress-Eigenschaft ruft die Adresse des Endpunkts ab.

  • Die FilterPriority-Eigenschaft gibt die Priorität des zusammengesetzten Filters zurück, den der ChannelDispatcher verwendet, um den Endpunkt zu ermitteln, der die Nachricht verarbeiten soll.

Konstruktoren

EndpointDispatcher(EndpointAddress, String, String)

Initialisiert eine neue Instanz der EndpointDispatcher-Klasse mit der angegebenen Adresse und dem angegebenen Namen und Namespace des Vertrags.

EndpointDispatcher(EndpointAddress, String, String, Boolean)

Initialisiert eine neue Instanz der EndpointDispatcher-Klasse mit der angegebenen Adresse, dem Vertragsnamen, dem Namespace des Vertrags und der Angabe, ob der Endpunkt ein öffentlicher Systemendpunkt ist.

Eigenschaften

AddressFilter

Ruft ein MessageFilter-Objekt ab oder legt dieses fest, das verwendet wird, um zu ermitteln, ob eine bestimmte Nachricht für die Endpunktadresse bestimmt ist.

ChannelDispatcher

Ruft das zugeordnete ChannelDispatcher-Objekt ab, das verwendet werden kann, um andere auf den Kanal bezogene Werte und Verhaltensweisen zu überprüfen oder zu ändern.

ContractFilter

Ruft das MessageFilter-Objekt ab oder legt dieses fest, das verwendet wird, um zu ermitteln, ob eine Nachricht für diesen Vertrag bestimmt ist.

ContractName

Ruft den Namen des Endpunktvertrags ab.

ContractNamespace

Ruft den Namespace des Endpunktvertrags ab.

DispatchRuntime

Ruft das DispatchRuntime-Objekt ab, das verwendet wird, um das Laufzeitverhalten in einem Dienstendpunkt oder einem Clientrückruf-Endpunkt zu prüfen, zu ändern oder zu erweitern.

EndpointAddress

Ruft die Adresse des Endpunkts ab.

FilterPriority

Ruft die Priorität der Kombination von ContractFilter und AddressFilter ab bzw. legt diese fest, wenn der ChannelDispatcher Endpunkte auswählt.

IsSystemEndpoint

Ruft einen Wert ab, der angibt, ob der Endpunkt intern vom Server und nicht vom Benutzer erstellt wird.

Methoden

Equals(Object)

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

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
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