MessageFilter Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
abstract
klasę bazową dla różnych klas filtrów używanych do wykonywania zapytań o komunikaty.
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
- Dziedziczenie
-
MessageFilter
- Pochodne
- Atrybuty
Uwagi
MessageFilter jest klasą abstract
, którą deweloperzy implementują w celu określenia kryteriów do użycia na potrzeby inspekcji komunikatów. Zazwyczaj filtry są używane przez aplikację punktu końcowego do określenia, co zrobić z komunikatem na podstawie badania części komunikatu. Na przykład proces kolejkowania może użyć zapytania XPath 1.0, aby sprawdzić element priorytetu znanego nagłówka, aby określić, czy przenieść komunikat do przodu kolejki.
Filtry są przechowywane w tabeli filtrów, która implementuje IMessageFilterTable<TFilterData>. Każdy filtr w tabeli jest skojarzony z określonymi danymi filtru, których można użyć, aby wskazać, jakie akcje należy wykonać, jeśli komunikat jest zgodny z filtrem. Metody Match służą do określania, czy komunikat spełnia filtr.
Nie można zmienić kryteriów używanych przez filtr po utworzeniu filtru, ponieważ tabele filtrów nie mają możliwości wykrycia zmiany. Jedynym sposobem zmodyfikowania kryteriów filtru jest utworzenie nowego i usunięcie istniejącego filtru.
Następujące klasy implementują klasę abstract
MessageFilter:
XPathMessageFilter używa wyrażenia XPath 1.0, aby określić kryteria dopasowania.
MatchAllMessageFilter pasuje do wszystkich komunikatów.
MatchNoneMessageFilter nie pasuje do żadnego z komunikatów.
ActionMessageFilter sprawdza, czy akcja komunikatu jest jednym z określonego zestawu akcji.
EndpointAddressMessageFilter sprawdza, czy komunikat spełnia określony adres punktu końcowego.
ChannelListenerBase<TChannel> jest klasą bazową abstract
, której można użyć do pisania odbiorników innych niż kolejkowanie.
Konstruktory
MessageFilter() |
Po wywołaniu w klasie pochodnej inicjuje nowe wystąpienie klasy MessageFilter. |
Metody
CreateFilterTable<FilterData>() |
Tworzy tabelę filtru dla filtru, który ma skojarzony z nim określony typ danych. |
Equals(Object) |
Określa, czy określony obiekt jest równy bieżącemu obiektowi. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
Match(Message) |
Po zastąpieniu klasy pochodnej sprawdza, czy komunikat spełnia kryteria filtrowania. Nie można zbadać ciała. |
Match(MessageBuffer) |
Gdy przesłonięta w klasie pochodnej, sprawdza, czy buforowany komunikat spełnia kryteria filtru. |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |