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


IMessageFilterTable<TFilterData>.GetMatchingFilters Метод

Определение

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

Перегрузки

GetMatchingFilters(Message, ICollection<MessageFilter>)

Возвращает значение, указывающее, удовлетворяет ли заданное сообщение критерию соответствия хотя бы одного фильтра, и добавляет соответствующие фильтры в коллекцию.

GetMatchingFilters(MessageBuffer, ICollection<MessageFilter>)

Возвращает значение, указывающее, удовлетворяет ли заданное сообщение или буферизованное сообщение критерию соответствия хотя бы одного фильтра, и добавляет соответствующие фильтры в коллекцию.

Комментарии

Используйте один из этих методов, если предполагается, что несколько фильтров будут удовлетворять условиям сообщения, и эти фильтры требуются. Обратите внимание, что коллекция, содержащая фильтры, не очищается до добавления результатов. Это позволяет накапливать все найденные соответствия для нескольких таблиц фильтров в одной коллекции.

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

Объекты MessageFilter, соответствующие запросу, хранятся в параметре results. Затем данные фильтра можно восстановить из таблицы фильтров путем использования этих фильтров в качестве ключей с методами, предоставляемыми словарем IDictionary<TKey,TValue>.

GetMatchingFilters(Message, ICollection<MessageFilter>)

Исходный код:
IMessageFilterTable.cs
Исходный код:
IMessageFilterTable.cs
Исходный код:
IMessageFilterTable.cs

Возвращает значение, указывающее, удовлетворяет ли заданное сообщение критерию соответствия хотя бы одного фильтра, и добавляет соответствующие фильтры в коллекцию.

public:
 bool GetMatchingFilters(System::ServiceModel::Channels::Message ^ message, System::Collections::Generic::ICollection<System::ServiceModel::Dispatcher::MessageFilter ^> ^ results);
public bool GetMatchingFilters (System.ServiceModel.Channels.Message message, System.Collections.Generic.ICollection<System.ServiceModel.Dispatcher.MessageFilter> results);
abstract member GetMatchingFilters : System.ServiceModel.Channels.Message * System.Collections.Generic.ICollection<System.ServiceModel.Dispatcher.MessageFilter> -> bool
Public Function GetMatchingFilters (message As Message, results As ICollection(Of MessageFilter)) As Boolean

Параметры

message
Message

Объект Message для проверки.

results
ICollection<MessageFilter>

Ссылочный параметр, в котором хранятся объекты MessageFilter, соответствующие условиям фильтра ICollection<T><Filter>.

Возвращаемое значение

true, если параметр message удовлетворяет критерию соответствия по крайней мере одного фильтра из таблицы; false, если не удовлетворяются критерии ни одного из фильтров.

Комментарии

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

Примечания для тех, кто реализует этот метод

В данной версии берется Message и должно выдаваться исключение InvalidBodyAccessException, если производится попытка проверить текст сообщения.

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

GetMatchingFilters(MessageBuffer, ICollection<MessageFilter>)

Исходный код:
IMessageFilterTable.cs
Исходный код:
IMessageFilterTable.cs
Исходный код:
IMessageFilterTable.cs

Возвращает значение, указывающее, удовлетворяет ли заданное сообщение или буферизованное сообщение критерию соответствия хотя бы одного фильтра, и добавляет соответствующие фильтры в коллекцию.

public:
 bool GetMatchingFilters(System::ServiceModel::Channels::MessageBuffer ^ messageBuffer, System::Collections::Generic::ICollection<System::ServiceModel::Dispatcher::MessageFilter ^> ^ results);
public bool GetMatchingFilters (System.ServiceModel.Channels.MessageBuffer messageBuffer, System.Collections.Generic.ICollection<System.ServiceModel.Dispatcher.MessageFilter> results);
abstract member GetMatchingFilters : System.ServiceModel.Channels.MessageBuffer * System.Collections.Generic.ICollection<System.ServiceModel.Dispatcher.MessageFilter> -> bool
Public Function GetMatchingFilters (messageBuffer As MessageBuffer, results As ICollection(Of MessageFilter)) As Boolean

Параметры

messageBuffer
MessageBuffer

Объект MessageBuffer для проверки.

results
ICollection<MessageFilter>

Ссылочный параметр, в котором хранятся объекты MessageFilter, соответствующие условиям фильтра ICollection<T><Filter>.

Возвращаемое значение

true, если параметр messageBuffer удовлетворяет критерию соответствия по крайней мере одного фильтра из таблицы; false, если не удовлетворяются критерии ни одного из фильтров.

Комментарии

Используйте этот метод, если предполагается, что несколько фильтров будут удовлетворять буферизованному сообщению, соответствующий фильтр требуется и тело сообщения может потребоваться проверить.

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