Поделиться через


MessageFilter Класс

Определение

abstract базовый класс для различных классов фильтров, используемых для запроса сообщений.

public ref class MessageFilter abstract
[System.Runtime.Serialization.DataContract]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.ActionMessageFilter))]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.XPathMessageFilter))]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.MatchAllMessageFilter))]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.MatchNoneMessageFilter))]
public abstract class MessageFilter
[<System.Runtime.Serialization.DataContract>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.ActionMessageFilter))>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.XPathMessageFilter))>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.MatchAllMessageFilter))>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.MatchNoneMessageFilter))>]
type MessageFilter = class
Public MustInherit Class MessageFilter
Наследование
MessageFilter
Производный
Атрибуты

Комментарии

MessageFilter — это класс abstract, который разработчики реализуют, чтобы указать критерии, используемые для проверки сообщений. Как правило, фильтры используются приложением конечной точки для определения того, что делать с сообщением на основе проверки некоторых частей сообщения. Процесс очереди, например, может использовать запрос XPath 1.0, чтобы проверить элемент приоритета известного заголовка, чтобы определить, следует ли перемещать сообщение в передней части очереди.

Фильтры хранятся в таблице фильтров, реализующей IMessageFilterTable<TFilterData>. Каждый фильтр в таблице связан с указанными данными фильтра, которые можно использовать для указания действий, которые необходимо предпринять, если сообщение соответствует фильтру. Методы Match используются для определения соответствия сообщения фильтру.

Критерии, используемые фильтром, нельзя изменить после создания фильтра, так как таблицы фильтров не могут обнаруживать изменения. Единственным способом изменения условий фильтра является создание нового и удаление существующего фильтра.

Следующие классы реализуют класс abstractMessageFilter:

  • XPathMessageFilter использует выражение XPath 1.0, чтобы указать критерии соответствия.

  • MatchAllMessageFilter соответствует всем сообщениям.

  • MatchNoneMessageFilter не соответствует ни одному из сообщений.

  • ActionMessageFilter проверяет, является ли действие сообщения одним из указанных наборов действий.

  • EndpointAddressMessageFilter проверяет, соответствует ли сообщение указанному адресу конечной точки.

ChannelListenerBase<TChannel> — это базовый класс abstract, который можно использовать для написания прослушивателей без очереди.

Конструкторы

MessageFilter()

При вызове в производном классе инициализирует новый экземпляр класса MessageFilter.

Методы

CreateFilterTable<FilterData>()

Создает таблицу фильтров для фильтра с указанным типом данных, связанных с ним.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
Match(Message)

При переопределении в производном классе проверяет, соответствует ли сообщение критериям фильтра. Тело не может быть проверено.

Match(MessageBuffer)

При переопределении в производном классе проверяет, соответствует ли буферизованное сообщение критериям фильтра.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к