// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information. using System.ComponentModel; using System.Web.Http.WebHost; using System.Web.Http.WebHost.Routing; using System.Web.Routing; namespace System.Web.Http { /// /// Extension methods for /// [EditorBrowsable(EditorBrowsableState.Never)] public static class RouteCollectionExtensions { /// /// Maps the specified route template. /// /// A collection of routes for the application. /// The name of the route to map. /// The route template for the route. /// A reference to the mapped route. public static Route MapHttpRoute(this RouteCollection routes, string name, string routeTemplate) { return MapHttpRoute(routes, name, routeTemplate, defaults: null, constraints: null); } /// /// Maps the specified route template and sets default constraints, and namespaces. /// /// A collection of routes for the application. /// The name of the route to map. /// The route template for the route. /// An object that contains default route values. /// A reference to the mapped route. public static Route MapHttpRoute(this RouteCollection routes, string name, string routeTemplate, object defaults) { return MapHttpRoute(routes, name, routeTemplate, defaults, constraints: null); } /// /// Maps the specified route template and sets default route values, constraints, and namespaces. /// /// A collection of routes for the application. /// The name of the route to map. /// The route template for the route. /// An object that contains default route values. /// A set of expressions that specify values for . /// A reference to the mapped route. public static Route MapHttpRoute(this RouteCollection routes, string name, string routeTemplate, object defaults, object constraints) { if (routes == null) { throw Error.ArgumentNull("routes"); } HttpWebRoute route = new HttpWebRoute(routeTemplate, HttpControllerRouteHandler.Instance) { Defaults = new RouteValueDictionary(defaults), Constraints = new RouteValueDictionary(constraints), DataTokens = new RouteValueDictionary() }; routes.Add(name, route); return route; } } }