MessageFilter.Match Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
- 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
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
- 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.