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 um filtro.

Sobrecargas

Nome Description
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 um 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 armazenados em buffer automaticamente e podem ser inspecionados por um filtro sem serem consumidos. No entanto, se o corpo deve ser inspecionado por um filtro, a mensagem inteira 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)

Origem:
MessageFilter.cs
Origem:
MessageFilter.cs
Origem:
MessageFilter.cs

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 Message objeto a ser testado.

Retornos

true se o Message objeto 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)

Origem:
MessageFilter.cs
Origem:
MessageFilter.cs
Origem:
MessageFilter.cs

Quando substituído em uma classe derivada, testa se uma mensagem em buffer atende aos critérios de um 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 MessageBuffer objeto a ser testado.

Retornos

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

Comentários

A mensagem deverá ser totalmente armazenada em buffer se o corpo deve ser 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 é automaticamente armazenado em buffer e, portanto, pode ser inspecionado sem ser consumido.

Aplica-se a