// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Net.Http; using System.Web.Http.Controllers; namespace System.Web.Http.Dispatcher { /// /// Defines the methods that are required for an factory. /// public interface IHttpControllerSelector { /// /// Selects a for the given . /// /// The request message. /// An instance. HttpControllerDescriptor SelectController(HttpRequestMessage request); /// /// Returns a map, keyed by controller string, of all that the selector can select. /// This is primarily called by to discover all the possible controllers in the system. /// /// A map of all that the selector can select, or null if the selector does not have a well-defined mapping of . [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Justification = "This is better handled as a method.")] IDictionary GetControllerMapping(); } }