次の方法で共有


IMessageFilterTable<TFilterData>.GetMatchingFilters メソッド

定義

指定したメッセージまたはバッファー内のメッセージによってクエリ条件が満たされるフィルターをコレクションに追加します。

オーバーロード

GetMatchingFilters(Message, ICollection<MessageFilter>)

指定したメッセージがテーブル内のフィルターの一致条件を満たしているかどうかを示す値を返し、一致するフィルターをコレクションに追加します。

GetMatchingFilters(MessageBuffer, ICollection<MessageFilter>)

指定したバッファー内のメッセージがテーブル内のフィルターの一致条件を満たしているかどうかを示す値を返し、一致するフィルターをコレクションに追加します。

注釈

2 つ以上のフィルターがメッセージに一致すると推測され、一致するフィルターが必要な場合は、これらのうちいずれか 1 つのメソッドを使用します。 結果を追加する前に、フィルターが格納されたコレクションをクリアしないように注意してください。 そうすることで、複数のフィルター テーブルに含まれる一致フィルターのすべてを 1 つのコレクションに蓄積できます。

フィルター テーブル内のフィルターでメッセージの本文を検査する必要がある場合は、メッセージをバッファーに格納し、GetMatchingFilters メソッドに渡します。 それ以外の場合は、 GetMatchingFiltersを指定します。

一致する MessageFilter オブジェクトは、results パラメーターに格納されます。 これで、該当するフィルターをキーとして指定し、IDictionary<TKey,TValue> によって提供されているメソッドを使用して、フィルター データをフィルター テーブルから復元できます。

GetMatchingFilters(Message, ICollection<MessageFilter>)

ソース:
IMessageFilterTable.cs

指定したメッセージがテーブル内のフィルターの一致条件を満たしているかどうかを示す値を返し、一致するフィルターをコレクションに追加します。

public:
 bool GetMatchingFilters(System::ServiceModel::Channels::Message ^ message, System::Collections::Generic::ICollection<System::ServiceModel::Dispatcher::MessageFilter ^> ^ results);
public bool GetMatchingFilters (System.ServiceModel.Channels.Message message, System.Collections.Generic.ICollection<System.ServiceModel.Dispatcher.MessageFilter> results);
abstract member GetMatchingFilters : System.ServiceModel.Channels.Message * System.Collections.Generic.ICollection<System.ServiceModel.Dispatcher.MessageFilter> -> bool
Public Function GetMatchingFilters (message As Message, results As ICollection(Of MessageFilter)) As Boolean

パラメーター

message
Message

テスト対象の Message

results
ICollection<MessageFilter>

ICollection<T> <Filter> に一致する MessageFilter オブジェクトを格納する参照パラメーター。

戻り値

true がテーブル内の少なくとも 1 つのフィルターの一致条件を満たしている場合は message、どのフィルター条件も満たしていない場合は false

注釈

2 つ以上のフィルターがメッセージに一致すると予測され、一致するフィルターが必要で、メッセージ本文を検査する必要がない場合は、このメソッドを使用します。

注意 (実装者)

このバージョンは Message を受け取ります。そして、それがメッセージ本文を確認しようとした場合は、このバージョンが InvalidBodyAccessException をスローする必要があります。

適用対象

GetMatchingFilters(MessageBuffer, ICollection<MessageFilter>)

ソース:
IMessageFilterTable.cs

指定したバッファー内のメッセージがテーブル内のフィルターの一致条件を満たしているかどうかを示す値を返し、一致するフィルターをコレクションに追加します。

public:
 bool GetMatchingFilters(System::ServiceModel::Channels::MessageBuffer ^ messageBuffer, System::Collections::Generic::ICollection<System::ServiceModel::Dispatcher::MessageFilter ^> ^ results);
public bool GetMatchingFilters (System.ServiceModel.Channels.MessageBuffer messageBuffer, System.Collections.Generic.ICollection<System.ServiceModel.Dispatcher.MessageFilter> results);
abstract member GetMatchingFilters : System.ServiceModel.Channels.MessageBuffer * System.Collections.Generic.ICollection<System.ServiceModel.Dispatcher.MessageFilter> -> bool
Public Function GetMatchingFilters (messageBuffer As MessageBuffer, results As ICollection(Of MessageFilter)) As Boolean

パラメーター

messageBuffer
MessageBuffer

テスト対象の MessageBuffer

results
ICollection<MessageFilter>

ICollection<T> <Filter> に一致する MessageFilter オブジェクトを格納する参照パラメーター。

戻り値

true がテーブル内の少なくとも 1 つのフィルターの一致条件を満たしている場合は messageBuffer、どのフィルター条件も満たしていない場合は false

注釈

2 つ以上のフィルターがバッファー内のメッセージに一致すると予測され、一致するフィルターが必要で、メッセージ本文の検査が必要になる可能性がある場合は、このメソッドを使用します。

適用対象