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 используются для определения соответствия сообщения фильтру.

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

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

  • Объект 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)

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