MessageFilter.Match Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
При переопределении в производном классе возвращает или задает сообщение о состоянии HTTP возвращаемого клиенту вывода.
Перегрузки
Match(Message) |
При переопределении в производном классе проверяет, удовлетворяет ли сообщение критериям фильтра. Тело сообщения не проверяется. |
Match(MessageBuffer) |
При переопределении в производном классе, проверяет, удовлетворяет ли сообщение или буферизованное сообщение критериям фильтра. |
Комментарии
Разница между двумя перегрузками состоит в том, что одна перегрузка берет параметр Message и не может проверять текст сообщения. Вторая же перегрузка берет параметр MessageBuffer и имеет право проверять любую часть сообщения. Заголовки сообщений автоматически помещаются в буфер и могут проверяться фильтром без надобности их запроса. Но если текст необходимо проверить фильтром, то все сообщение должно помещаться в буфер, поскольку небуферизованный текст сообщения может быть поглощен запросом, а его содержимое разрушено.
Используйте метод Match, если проверка тела не требуется. Используйте метод Match, если проверка тела сообщения не требуется.
Match(Message)
При переопределении в производном классе проверяет, удовлетворяет ли сообщение критериям фильтра. Тело сообщения не проверяется.
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
Параметры
Возвращаемое значение
true
, если объект Message удовлетворяет критериям фильтра; в ином случае — false
.
Комментарии
Этот метод не может проверять содержимое тела сообщения.
Примечания для тех, кто реализует этот метод
Если фильтр попытается проверить тело буферизованного сообщения, он может выдать исключение InvalidBodyAccessException. Он не должен возвратить значение false
.
Применяется к
Match(MessageBuffer)
При переопределении в производном классе, проверяет, удовлетворяет ли сообщение или буферизованное сообщение критериям фильтра.
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
Параметры
- buffer
- MessageBuffer
Объект MessageBuffer для проверки.
Возвращаемое значение
true
, если объект MessageBuffer удовлетворяет критериям фильтра; в ином случае — false
.
Комментарии
Сообщение должно быть полностью помещено в буфер, если тело будет проверяться фильтром. Текст объекта MessageBuffer полностью буферизуется и поэтому может проверяться фильтром. Текст объекта Message, который не был полностью помещен в буфер, может быть поглощен при проверке фильтром. Элемент заголовка объекта Message автоматически помещается в буфер и потому может проверяться без поглощения.