IMessageFilterTable<TFilterData>.GetMatchingFilters Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Добавляет фильтры, чьим критериям запроса удовлетворяет указанное сообщение или буферизованное сообщение, в коллекцию.
Перегрузки
GetMatchingFilters(Message, ICollection<MessageFilter>) |
Возвращает значение, указывающее, удовлетворяет ли заданное сообщение критерию соответствия хотя бы одного фильтра, и добавляет соответствующие фильтры в коллекцию. |
GetMatchingFilters(MessageBuffer, ICollection<MessageFilter>) |
Возвращает значение, указывающее, удовлетворяет ли заданное сообщение или буферизованное сообщение критерию соответствия хотя бы одного фильтра, и добавляет соответствующие фильтры в коллекцию. |
Комментарии
Используйте один из этих методов, если предполагается, что несколько фильтров будут удовлетворять условиям сообщения, и эти фильтры требуются. Обратите внимание, что коллекция, содержащая фильтры, не очищается до добавления результатов. Это позволяет накапливать все найденные соответствия для нескольких таблиц фильтров в одной коллекции.
Если текст сообщения должен проверяться фильтром в таблице фильтров, то поместите сообщение в буфер и передайте его в метод GetMatchingFilters. В противном случае используйте коллекцию GetMatchingFilters.
Объекты MessageFilter, соответствующие запросу, хранятся в параметре results
. Затем данные фильтра можно восстановить из таблицы фильтров путем использования этих фильтров в качестве ключей с методами, предоставляемыми словарем IDictionary<TKey,TValue>.
GetMatchingFilters(Message, ICollection<MessageFilter>)
- Исходный код:
- 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
Параметры
- results
- ICollection<MessageFilter>
Ссылочный параметр, в котором хранятся объекты MessageFilter, соответствующие условиям фильтра ICollection<T><Filter>.
Возвращаемое значение
true
, если параметр message
удовлетворяет критерию соответствия по крайней мере одного фильтра из таблицы; false
, если не удовлетворяются критерии ни одного из фильтров.
Комментарии
Используйте этот метод, если предполагается, что несколько фильтров будут удовлетворять сообщению, соответствующие фильтры требуются и тело сообщения не требуется проверять.
Примечания для тех, кто реализует этот метод
В данной версии берется Message и должно выдаваться исключение InvalidBodyAccessException, если производится попытка проверить текст сообщения.
Применяется к
GetMatchingFilters(MessageBuffer, ICollection<MessageFilter>)
- Исходный код:
- 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
, если не удовлетворяются критерии ни одного из фильтров.
Комментарии
Используйте этот метод, если предполагается, что несколько фильтров будут удовлетворять буферизованному сообщению, соответствующий фильтр требуется и тело сообщения может потребоваться проверить.