Comparteix a través de


MessageFilter.Match Método

Definición

Si se invalida en una clase derivada, prueba si un mensaje o un mensaje almacenado en búfer satisface los criterios de un filtro.

Sobrecargas

Match(Message)

Si se invalida en una clase derivada, prueba si un mensaje satisface los criterios del filtro. No se puede examinar el cuerpo del mensaje.

Match(MessageBuffer)

Si se invalida en una clase derivada, prueba si un mensaje almacenado en búfer satisface los criterios de un filtro.

Comentarios

La diferencia entre las dos sobrecargas es que una toma un parámetro Message y no puede examinar el cuerpo del mensaje. La otra toma un parámetro MessageBuffer y puede examinar cualquier parte del mensaje. Los encabezados de mensaje se almacenan en búfer automáticamente y un filtro puede inspeccionarlos sin utilizarse. Pero si un filtro debe inspeccionar el cuerpo del mensaje, el mensaje completo debe estar almacenado en búfer porque el cuerpo de mensaje sin almacenar en búfer puede ser utilizado por una consulta, y su contenido se destruye.

Use Match si no es necesario que se examine el cuerpo del mensaje. Use Match si es necesario que examinar el cuerpo del mensaje.

Match(Message)

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

Si se invalida en una clase derivada, prueba si un mensaje satisface los criterios del filtro. No se puede examinar el cuerpo del mensaje.

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

Objeto Message que se va a probar.

Devoluciones

true si el objeto Message satisface los criterios del filtro; de lo contrario, false.

Comentarios

Este método no puede inspeccionar el contenido del cuerpo del mensaje.

Notas a los implementadores

Si un filtro intenta examinar el cuerpo de un mensaje no almacenado en búfer, dicho filtro debe iniciar InvalidBodyAccessException. No debe devolver false.

Se aplica a

Match(MessageBuffer)

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

Si se invalida en una clase derivada, prueba si un mensaje almacenado en búfer satisface los criterios de un 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

Objeto MessageBuffer que se va a probar.

Devoluciones

true si el objeto MessageBuffer satisface los criterios del filtro; de lo contrario, false.

Comentarios

El mensaje debe estar totalmente almacenado en búfer si el filtro va a inspeccionar el cuerpo. El cuerpo del MessageBuffer está totalmente almacenado en búfer y, por consiguiente, puede ser inspeccionado por un filtro. El cuerpo de un Message no se ha almacenado totalmente en búfer y la inspección realizada por el filtro podría consumirlo. El elemento de encabezado de un Message se almacena en búfer automáticamente y, por consiguiente, se puede inspeccionar sin ser consumido.

Se aplica a