MessageFilter.Match 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在派生类中被重写时,测试消息或缓冲的消息是否满足筛选器的条件。
重载
Match(Message) |
在派生类中被重写时,测试消息是否满足筛选器的条件。 无法检查正文。 |
Match(MessageBuffer) |
在派生类中被重写时,测试缓冲的消息是否满足筛选器的条件。 |
注解
两个重载之间的区别是一个使用 Message 参数,但不允许检查正文。 另一个使用 MessageBuffer 参数,并且可以检查消息的任何部分。 消息头自动缓冲,并且无需使用即可由筛选器检查。 不过,如果由筛选器检查正文,则必须缓冲整个消息,因为查询可以使用未缓冲的消息正文并破坏其内容。
如果不需要检查正文,请使用 Match。 如果需要检查正文,请使用 Match。
Match(Message)
- 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 对象满足筛选器的条件,则为 true
;否则为 false
。
注解
此方法无法检查消息正文的内容。
实施者说明
如果筛选器试图检查未缓冲的消息的正文,则筛选器必须引发 InvalidBodyAccessException。 它不应返回 false
。
适用于
Match(MessageBuffer)
- 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 的标头元素自动被缓冲,因此无需使用即可进行检查。