次の方法で共有


MessageFilter.Match メソッド

定義

派生クラスでオーバーライドされると、メッセージまたはバッファー内のメッセージがフィルターの基準を満たすかどうかを検査します。

オーバーロード

Match(Message)

派生クラスでオーバーライドされると、メッセージがフィルター基準を満たすかどうかを検査します。 本文は検査できません。

Match(MessageBuffer)

派生クラスでオーバーライドされると、バッファー内のメッセージがフィルターの基準を満たすかどうかを検査します。

注釈

この 2 つのオーバーロードの違いは、一方は Message パラメーターを受け取り、メッセージ本文を調べることを許可されていないことです。 他方は MessageBuffer パラメーターを受け取り、メッセージの任意の部分を調べることができます。 メッセージ ヘッダーは自動的にバッファーに格納され、フィルターはその内容を取り込まずに調べることができます。 ただし、フィルターがメッセージ本文を調べる場合は、メッセージ全体がバッファーに格納されている必要があります。バッファーに格納されていないメッセージ本文は、クエリによって取り込まれ、その内容が破壊される可能性があるためです。

メッセージ本文を調べる必要がない場合は、Match を使用します。 メッセージ本文を調べる必要がある場合は、Match を使用します。

Match(Message)

派生クラスでオーバーライドされると、メッセージがフィルター基準を満たすかどうかを検査します。 本文は検査できません。

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

パラメーター

message
Message

テスト対象の Message オブジェクト。

戻り値

Boolean

true オブジェクトがフィルター条件を満たす場合は Message、そうでない場合は false

注釈

このメソッドは、メッセージ本文の内容は検査できません。

注意 (実装者)

バッファーに格納されていないメッセージの本文の検査をフィルターが試みる場合、フィルターは InvalidBodyAccessException をスローする必要があります。 false を返すことはできません。

適用対象

Match(MessageBuffer)

派生クラスでオーバーライドされると、バッファー内のメッセージがフィルターの基準を満たすかどうかを検査します。

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

パラメーター

buffer
MessageBuffer

テスト対象の MessageBuffer オブジェクト。

戻り値

Boolean

true オブジェクトがフィルター条件を満たす場合は MessageBuffer、そうでない場合は false

注釈

フィルターで本文を検査する場合は、メッセージが完全にバッファーに格納されている必要があります。 MessageBuffer の本文は完全にバッファーに格納されているため、フィルターで検査できます。 完全にバッファーに格納されていない Message の本文は、フィルター検査で破壊される可能性があります。 Message のヘッダー要素は自動的にバッファーに格納されるため、取り込まずに検査できます。

適用対象