Freigeben über


MessageFilter Klasse

Definition

abstract Basisklasse für verschiedene Klassen von Filtern, die zum Abfragen von Nachrichten verwendet werden.

public ref class MessageFilter abstract
[System.Runtime.Serialization.DataContract]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.ActionMessageFilter))]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.XPathMessageFilter))]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.MatchAllMessageFilter))]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.MatchNoneMessageFilter))]
public abstract class MessageFilter
[<System.Runtime.Serialization.DataContract>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.ActionMessageFilter))>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.XPathMessageFilter))>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.MatchAllMessageFilter))>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.MatchNoneMessageFilter))>]
type MessageFilter = class
Public MustInherit Class MessageFilter
Vererbung
MessageFilter
Abgeleitet
Attribute

Hinweise

MessageFilter ist eine abstract Klasse, die Entwickler implementieren, um die Kriterien anzugeben, die zum Überprüfen von Nachrichten verwendet werden sollen. In der Regel werden Filter von einer Endpunktanwendung verwendet, um zu bestimmen, was mit einer Nachricht auf der Grundlage einer Untersuchung eines Teils der Nachricht zu tun ist. Ein Warteschlangenprozess kann z. B. eine XPath 1.0-Abfrage verwenden, um das Prioritätselement eines bekannten Headers zu überprüfen, um zu bestimmen, ob eine Nachricht an die Vorderseite der Warteschlange verschoben werden soll.

Filter werden in einer Filtertabelle gespeichert, die IMessageFilterTable<TFilterData>implementiert. Jeder Filter in der Tabelle ist angegebenen Filterdaten zugeordnet, die verwendet werden können, um anzugeben, welche Aktionen ausgeführt werden sollen, wenn eine Nachricht mit dem Filter übereinstimmt. Die Match Methoden werden verwendet, um zu bestimmen, ob eine Nachricht einem Filter entspricht.

Die von einem Filter verwendeten Kriterien können nicht geändert werden, nachdem der Filter erstellt wurde, da die Filtertabellen keine Möglichkeit haben, eine Änderung zu erkennen. Die einzige Möglichkeit zum Ändern der Kriterien eines Filters besteht darin, einen neuen zu erstellen und den vorhandenen Filter zu löschen.

Die folgenden Klassen implementieren die abstractMessageFilter Klasse:

ChannelListenerBase<TChannel> ist eine abstract Basisklasse, die Sie zum Schreiben von Listenern ohne Warteschlange verwenden können.

Konstruktoren

MessageFilter()

Wenn sie in einer abgeleiteten Klasse aufgerufen wird, initialisiert sie eine neue Instanz der MessageFilter Klasse.

Methoden

CreateFilterTable<FilterData>()

Erstellt eine Filtertabelle für einen Filter, der einen bestimmten Datentyp zugeordnet hat.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
Match(Message)

Wenn sie in einer abgeleiteten Klasse überschrieben werden, wird überprüft, ob eine Nachricht die Filterkriterien erfüllt. Der Körper kann nicht untersucht werden.

Match(MessageBuffer)

Wenn sie in einer abgeleiteten Klasse überschrieben werden, überprüft, ob eine gepufferte Nachricht die Kriterien eines Filters erfüllt.

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

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

(Geerbt von Object)

Gilt für: