次の方法で共有


IMessageFilterTable<TFilterData>.GetMatchingValue メソッド

定義

指定したメッセージまたはバッファー内のメッセージがテーブル内の 1 つのフィルターの一致条件を満たしているかどうかを示す値を返し、一致したフィルターのフィルター データを返します。

オーバーロード

GetMatchingValue(Message, TFilterData)

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

GetMatchingValue(MessageBuffer, TFilterData)

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

注釈

1 つのフィルターがメッセージに一致すると予測され、一致するフィルターからフィルター データだけを復元する必要がある場合は、これらのメソッドのいずれかを使用します。 これらのメソッドは、一致するフィルターが見つかったかどうかを示すブール値を返し、data 参照パラメーターに一致するフィルター データを設定します。

メッセージの本文を検査するフィルターがフィルター テーブル内に存在しない場合は、GetMatchingFilter を使用します。

フィルター テーブル内のフィルターでメッセージの本文を検査する可能性がある場合は、メッセージをバッファーに格納し、GetMatchingFilter メソッドに渡します。

GetMatchingValue(Message, TFilterData)

ソース:
IMessageFilterTable.cs

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

public:
 bool GetMatchingValue(System::ServiceModel::Channels::Message ^ message, [Runtime::InteropServices::Out] TFilterData % value);
public bool GetMatchingValue (System.ServiceModel.Channels.Message message, out TFilterData value);
abstract member GetMatchingValue : System.ServiceModel.Channels.Message * 'FilterData -> bool
Public Function GetMatchingValue (message As Message, ByRef value As TFilterData) As Boolean

パラメーター

message
Message

テスト対象の Message

value
TFilterData

out に一致する を FilterData 格納する messageパラメーター。

戻り値

メッセージがテーブル内のただ 1 つのフィルターの一致条件を満たしている場合は true、どのフィルター条件も満たしていない場合は false

注釈

1 つのフィルターがバッファー内のメッセージに一致すると予測され、一致するフィルターからフィルター データだけを復元する必要がある場合は、このメソッドを使用します。

このメソッドでは、一致するフィルターは、多くとも 1 つであると予想されます。 複数のフィルターが一致する場合は、MultipleFilterMatchesException をスローする必要があります。

フィルター テーブル内のフィルターでメッセージの本文を検査する必要がある場合は、CreateBufferedCopy を使用してメッセージをバッファーに格納し、それを GetMatchingValue バージョンのメソッドに渡します。

注意 (実装者)

2 つ以上のフィルターがメッセージに一致した場合は、MultipleFilterMatchesException をスローする必要があります。

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

適用対象

GetMatchingValue(MessageBuffer, TFilterData)

ソース:
IMessageFilterTable.cs

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

public:
 bool GetMatchingValue(System::ServiceModel::Channels::MessageBuffer ^ messageBuffer, [Runtime::InteropServices::Out] TFilterData % value);
public bool GetMatchingValue (System.ServiceModel.Channels.MessageBuffer messageBuffer, out TFilterData value);
abstract member GetMatchingValue : System.ServiceModel.Channels.MessageBuffer * 'FilterData -> bool
Public Function GetMatchingValue (messageBuffer As MessageBuffer, ByRef value As TFilterData) As Boolean

パラメーター

messageBuffer
MessageBuffer

テスト対象の MessageBuffer

value
TFilterData

out に一致する を FilterData 格納する messageBufferパラメーター。

戻り値

メッセージがテーブル内のただ 1 つのフィルターの一致条件を満たしている場合は true、どのフィルター条件も満たしていない場合は false

注釈

1 つのフィルターがバッファー内のメッセージに一致すると予測され、一致するフィルターからフィルター データだけを復元する必要があり、メッセージ本文の検査が必要になる可能性がある場合は、このメソッドを使用します。

注意 (実装者)

2 つ以上のフィルターがメッセージに一致した場合は、MultipleFilterMatchesException をスローする必要があります。

適用対象