Share via


MessageFilter.Match Metoda

Definice

Při přepsání v odvozené třídě testuje, zda zpráva nebo zpráva ve vyrovnávací paměti splňuje kritéria filtru.

Přetížení

Match(Message)

Při přepsání v odvozené třídě testuje, zda zpráva splňuje kritéria filtru. Tělo nemůže být vyšetřeno.

Match(MessageBuffer)

Při přepsání v odvozené třídě testuje, zda zpráva ve vyrovnávací paměti splňuje kritéria filtru.

Poznámky

Rozdíl mezi dvěma přetíženími spočívá v tom, že jedno přebírá Message parametr a nemá povoleno zkoumat tělo. Druhý přebírá MessageBuffer parametr a může prozkoumat libovolnou část zprávy. Záhlaví zpráv se automaticky ukládají do vyrovnávací paměti a filtr je může zkontrolovat, aniž by je spotřeboval. Pokud ale má být tělo zkontrolováno filtrem, musí být celá zpráva uložena do vyrovnávací paměti, protože dotaz může využívat text zprávy bez vyrovnávací paměti a jeho obsah se zničí.

Použijte Match , pokud vyšetření těla není vyžadováno. Použijte Match , pokud se vyžaduje kontrola textu zprávy.

Match(Message)

Zdroj:
MessageFilter.cs
Zdroj:
MessageFilter.cs
Zdroj:
MessageFilter.cs

Při přepsání v odvozené třídě testuje, zda zpráva splňuje kritéria filtru. Tělo nemůže být vyšetřeno.

public:
 abstract bool Match(System::ServiceModel::Channels::Message ^ message);
public abstract bool Match (System.ServiceModel.Channels.Message message);
abstract member Match : System.ServiceModel.Channels.Message -> bool
Public MustOverride Function Match (message As Message) As Boolean

Parametry

message
Message

Objekt Message , který se má otestovat.

Návraty

trueMessage pokud objekt splňuje kritéria filtru, falsev opačném případě .

Poznámky

Tato metoda nemůže zkontrolovat obsah textu zprávy.

Poznámky pro implementátory

Pokud se filtr pokusí prozkoumat text zprávy bez vyrovnávací zprávy, musí filtr vyvolat InvalidBodyAccessException. Nemělo by vracet false.

Platí pro

Match(MessageBuffer)

Zdroj:
MessageFilter.cs
Zdroj:
MessageFilter.cs
Zdroj:
MessageFilter.cs

Při přepsání v odvozené třídě testuje, zda zpráva ve vyrovnávací paměti splňuje kritéria filtru.

public:
 abstract bool Match(System::ServiceModel::Channels::MessageBuffer ^ buffer);
public abstract bool Match (System.ServiceModel.Channels.MessageBuffer buffer);
abstract member Match : System.ServiceModel.Channels.MessageBuffer -> bool
Public MustOverride Function Match (buffer As MessageBuffer) As Boolean

Parametry

buffer
MessageBuffer

Objekt MessageBuffer , který se má otestovat.

Návraty

trueMessageBuffer pokud objekt splňuje kritéria filtru, falsev opačném případě .

Poznámky

Pokud má filtr zkontrolovat text zprávy, musí být zpráva plně uložená do vyrovnávací paměti. Tělo je MessageBuffer plně pufrováno, a proto může být zkontrolováno filtrem. Message Tělo, které nebylo plně pufrováno, může být spotřebováno kontrolou filtru. Prvek záhlaví objektu Message se automaticky uloží do vyrovnávací paměti, a proto jej lze zkontrolovat bez použití.

Platí pro