File: System\ServiceModel\Dispatcher\IMessageFilterTable.cs
Web Access
Project: src\src\System.ServiceModel.Primitives\src\System.ServiceModel.Primitives.csproj (System.ServiceModel.Primitives)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
using System.ServiceModel.Channels;
using System.Collections.Generic;
 
namespace System.ServiceModel.Dispatcher
{
    public interface IMessageFilterTable<TFilterData> : IDictionary<MessageFilter, TFilterData>
    {
        // return a single match
        bool GetMatchingValue(Message message, out TFilterData value);
        bool GetMatchingValue(MessageBuffer messageBuffer, out TFilterData value);
 
        // return multiple matches
        bool GetMatchingValues(Message message, ICollection<TFilterData> results);
        bool GetMatchingValues(MessageBuffer messageBuffer, ICollection<TFilterData> results);
 
        // If you need both the filter and the data, use these functions then look up
        // the data using the filter tables IDictionary methods.
        bool GetMatchingFilter(Message message, out MessageFilter filter);
        bool GetMatchingFilter(MessageBuffer messageBuffer, out MessageFilter filter);
        bool GetMatchingFilters(Message message, ICollection<MessageFilter> results);
        bool GetMatchingFilters(MessageBuffer messageBuffer, ICollection<MessageFilter> results);
    }
}