MessageFilter.Match メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
派生クラスでオーバーライドされると、メッセージまたはバッファー内のメッセージがフィルターの基準を満たすかどうかを検査します。
オーバーロード
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
パラメーター
戻り値
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 オブジェクト。
戻り値
true
オブジェクトがフィルター条件を満たす場合は MessageBuffer、そうでない場合は false
。
注釈
フィルターで本文を検査する場合は、メッセージが完全にバッファーに格納されている必要があります。 MessageBuffer の本文は完全にバッファーに格納されているため、フィルターで検査できます。 完全にバッファーに格納されていない Message の本文は、フィルター検査で破壊される可能性があります。 Message のヘッダー要素は自動的にバッファーに格納されるため、取り込まずに検査できます。