IMessageFilterTable<TFilterData>.GetMatchingValue 方法

定义

返回一个值,该值指示指定的消息或缓冲消息是否满足表中筛选器的匹配条件,然后返回匹配筛选器的数据。

重载

GetMatchingValue(Message, TFilterData)

返回一个值,该值指示指定的消息是否正好满足表中的一个筛选器的匹配条件,然后将匹配筛选数据添加到集合。

GetMatchingValue(MessageBuffer, TFilterData)

返回一个值,该值指示指定的缓冲消息是否正好满足表中的一个筛选器的匹配条件,然后将匹配筛选数据添加到集合。

注解

当预期至多只有一个筛选器与消息相匹配,并且只需要恢复匹配筛选器的数据时,请使用这些方法之一。 这些方法会先返回一个指示是否找到匹配筛选器的布尔值,然后将 data 引用参数设置为匹配筛选器数据。

如果筛选器表中的任何筛选器都不检查消息的正文,请使用 GetMatchingFilter

如果可能会由筛选器表中的筛选器来检查消息的正文,请缓冲该消息,然后将它传递到该方法的 GetMatchingFilter 版本。

GetMatchingValue(Message, TFilterData)

Source:
IMessageFilterTable.cs
Source:
IMessageFilterTable.cs

返回一个值,该值指示指定的消息是否正好满足表中的一个筛选器的匹配条件,然后将匹配筛选数据添加到集合。

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

返回

如果消息正好满足表中一个筛选器的匹配条件,则为 true;如果不满足任何筛选器,则为 false

注解

当预期只有一个筛选器与消息相匹配,并且只需要恢复匹配筛选器的数据时,请使用此方法。

此方法预期最多只有一个匹配筛选器。 如果多个筛选器相匹配,则必须引发 MultipleFilterMatchesException

如果必须由筛选器表中的筛选器来检查消息的正文,请使用 CreateBufferedCopy 来缓冲该消息,然后将它传递到该方法的 GetMatchingValue 版本。

实施者说明

如果多个筛选器与消息相匹配,则必须引发 MultipleFilterMatchesException

此重载使用 Message,如果该重载试图检查消息正文,则必须引发 InvalidBodyAccessException

适用于

GetMatchingValue(MessageBuffer, TFilterData)

Source:
IMessageFilterTable.cs
Source:
IMessageFilterTable.cs

返回一个值,该值指示指定的缓冲消息是否正好满足表中的一个筛选器的匹配条件,然后将匹配筛选数据添加到集合。

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

返回

如果消息正好满足表中一个筛选器的匹配条件,则为 true;如果不满足任何筛选器,则为 false

注解

当预期会有单个筛选器与缓冲消息相匹配,且只需要恢复匹配筛选器的数据,并且可能需要检查消息的正文时,请使用此方法。

实施者说明

如果多个筛选器与消息相匹配,则必须引发 MultipleFilterMatchesException

适用于