MessageFilter.Match 方法

定义

在派生类中被重写时,测试消息或缓冲的消息是否满足筛选器的条件。

重载

Match(Message)

在派生类中被重写时,测试消息是否满足筛选器的条件。 无法检查正文。

Match(MessageBuffer)

在派生类中被重写时,测试缓冲的消息是否满足筛选器的条件。

注解

两个重载之间的区别是一个使用 Message 参数,但不允许检查正文。 另一个使用 MessageBuffer 参数,并且可以检查消息的任何部分。 消息头自动缓冲,并且无需使用即可由筛选器检查。 不过,如果由筛选器检查正文,则必须缓冲整个消息,因为查询可以使用未缓冲的消息正文并破坏其内容。

如果不需要检查正文,请使用 Match。 如果需要检查正文,请使用 Match

Match(Message)

Source:
MessageFilter.cs
Source:
MessageFilter.cs
Source:
MessageFilter.cs

在派生类中被重写时,测试消息是否满足筛选器的条件。 无法检查正文。

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 对象。

返回

如果 Message 对象满足筛选器的条件,则为 true;否则为 false

注解

此方法无法检查消息正文的内容。

实施者说明

如果筛选器试图检查未缓冲的消息的正文,则筛选器必须引发 InvalidBodyAccessException。 它不应返回 false

适用于

Match(MessageBuffer)

Source:
MessageFilter.cs
Source:
MessageFilter.cs
Source:
MessageFilter.cs

在派生类中被重写时,测试缓冲的消息是否满足筛选器的条件。

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 对象。

返回

如果 MessageBuffer 对象满足筛选器的条件,则为 true;否则为 false

注解

如果由筛选器检查正文,则必须完全缓冲该消息。 MessageBuffer 的正文被完全缓冲,因此可以由筛选器检查。 未经完全缓冲的 Message 的正文,可能会由筛选器检查来使用。 Message 的标头元素自动被缓冲,因此无需使用即可进行检查。

适用于