Condividi tramite


MessageFilter.Match Metodo

Definizione

Quando sottoposto a override in una classe derivata, controlla se un messaggio o un messaggio memorizzato nel buffer soddisfa i criteri di un filtro dell'endpoint.

Overload

Match(Message)

Quando sottoposto a override in una classe derivata, controlla se un messaggio soddisfa i criteri di un filtro dell'endpoint. Non è possibile esaminare il corpo.

Match(MessageBuffer)

Quando sottoposto a override in una classe derivata, controlla se un messaggio memorizzato nel buffer soddisfa i criteri di un filtro dell'endpoint.

Commenti

La differenza tra i due overload è che uno accetta un parametro Message e non ha la possibilità di esaminare il corpo. L'altro accetta un parametro MessageBuffer e ha la possibilità di esaminare qualsiasi parte del messaggio. Le intestazioni del messaggio vengono automaticamente memorizzate nel buffer e possono essere controllate da un filtro senza essere utilizzate. Se il corpo deve essere controllato da un filtro, allora l'intero messaggio deve essere memorizzato nel buffer perché un corpo del messaggio non memorizzato nel buffer può essere utilizzato da una query e il contenuto può essere distrutto.

Utilizzare Match se l'attività di esame del corpo non è necessaria. Utilizzare Match se l'attività di esame del corpo del messaggio è necessaria.

Match(Message)

Origine:
MessageFilter.cs
Origine:
MessageFilter.cs

Quando sottoposto a override in una classe derivata, controlla se un messaggio soddisfa i criteri di un filtro dell'endpoint. Non è possibile esaminare il corpo.

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

Parametri

message
Message

Oggetto Message da controllare.

Restituisce

true se l'oggetto Message soddisfa i criteri del filtro. In caso contrario, false.

Commenti

Questo metodo non può controllare il contenuto del corpo del messaggio.

Note per gli implementatori

Se il filtro tenta di esaminare il corpo di un messaggio non memorizzato nel buffer, il filtro deve generare un'eccezione InvalidBodyAccessException. Non deve restituire false.

Si applica a

Match(MessageBuffer)

Origine:
MessageFilter.cs
Origine:
MessageFilter.cs

Quando sottoposto a override in una classe derivata, controlla se un messaggio memorizzato nel buffer soddisfa i criteri di un filtro dell'endpoint.

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

Parametri

buffer
MessageBuffer

Oggetto MessageBuffer da controllare.

Restituisce

true se l'oggetto MessageBuffer soddisfa i criteri del filtro. In caso contrario, false.

Commenti

Il messaggio deve essere completamente memorizzato nel buffer se il corpo deve essere controllato dal filtro. Il corpo del MessageBuffer è completamente memorizzato nel buffer e quindi può essere controllato da un filtro. Il corpo di un Message che non è stato completamente memorizzato nel buffer può essere utilizzato dal controllo del filtro. L'elemento di intestazione di un Message viene automaticamente memorizzato nel filtro e quindi può essere controllato senza essere utilizzato.

Si applica a