Compartilhar via


MessageFilter.Match Método

Definição

Quando substituído em uma classe derivada, testa se uma mensagem ou uma mensagem em buffer atende aos critérios de filtro.

Sobrecargas

Match(Message)

Quando substituído em uma classe derivada, testa se uma mensagem atende aos critérios de filtro. O corpo não pode ser examinado.

Match(MessageBuffer)

Quando substituído em uma classe derivada, testa se uma mensagem em buffer atende aos critérios de filtro.

Comentários

A diferença entre as duas sobrecargas é que um usa um Message parâmetro e não tem permissão para examinar o corpo. O outro usa um MessageBuffer parâmetro e pode examinar qualquer parte da mensagem. Os cabeçalhos de mensagem são automaticamente armazenados em buffer e podem ser inspecionados por um filtro sem serem consumidos. Mas se o corpo deve ser inspecionado por um filtro, toda a mensagem deve ser armazenada em buffer porque um corpo de mensagem não armazenado pode ser consumido por uma consulta e seu conteúdo é destruído.

Use Match se o exame do corpo não for necessário. Use Match se o exame do corpo da mensagem for necessário.

Match(Message)

Quando substituído em uma classe derivada, testa se uma mensagem atende aos critérios de filtro. O corpo não pode ser examinado.

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

Parâmetros

message
Message

O objeto Message a ser testado.

Retornos

Boolean

true se o objeto Message atender aos critérios de filtro; caso contrário, false.

Comentários

Esse método não pode inspecionar o conteúdo do corpo da mensagem.

Notas aos Implementadores

Se o filtro tentar examinar o corpo de uma mensagem não armazenada, o filtro deverá gerar um InvalidBodyAccessException. Ele não deve retornar false.

Aplica-se a

Match(MessageBuffer)

Quando substituído em uma classe derivada, testa se uma mensagem em buffer atende aos critérios de filtro.

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

Parâmetros

buffer
MessageBuffer

O objeto MessageBuffer a ser testado.

Retornos

Boolean

true se o objeto MessageBuffer atender aos critérios de filtro; caso contrário, false.

Comentários

A mensagem deverá ser totalmente armazenada em buffer se o corpo for inspecionado pelo filtro. O corpo do MessageBuffer é totalmente armazenado em buffer e, portanto, pode ser inspecionado por um filtro. O corpo de um Message que não foi totalmente armazenado em buffer pode ser consumido pela inspeção de filtro. O elemento de cabeçalho de um Message é armazenado em buffer automaticamente e, portanto, pode ser inspecionado sem ser consumido.

Aplica-se a