diff --git a/src/Microsoft.AspNet.Routing/RouteBuilderExtensions.cs b/src/Microsoft.AspNet.Routing/RouteBuilderExtensions.cs index 0905d31114..37ea3e55c8 100644 --- a/src/Microsoft.AspNet.Routing/RouteBuilderExtensions.cs +++ b/src/Microsoft.AspNet.Routing/RouteBuilderExtensions.cs @@ -23,31 +23,7 @@ namespace Microsoft.AspNet.Routing string template, object defaults) { - MapRoute(routeCollectionBuilder, name, template, new RouteValueDictionary(defaults)); - return routeCollectionBuilder; - } - - public static IRouteBuilder MapRoute(this IRouteBuilder routeCollectionBuilder, - string name, - string template, - IDictionary defaults) - { - if (routeCollectionBuilder.DefaultHandler == null) - { - throw new InvalidOperationException(Resources.DefaultHandler_MustBeSet); - } - - var inlineConstraintResolver = routeCollectionBuilder - .ServiceProvider - .GetService(); - - routeCollectionBuilder.Routes.Add(new TemplateRoute(routeCollectionBuilder.DefaultHandler, - name, - template, - defaults, - constraints: null, - inlineConstraintResolver: inlineConstraintResolver)); - return routeCollectionBuilder; + return MapRoute(routeCollectionBuilder, name, template, defaults, constraints: null); } public static IRouteBuilder MapRoute(this IRouteBuilder routeCollectionBuilder, @@ -55,39 +31,6 @@ namespace Microsoft.AspNet.Routing string template, object defaults, object constraints) - { - MapRoute(routeCollectionBuilder, - name, - template, - new RouteValueDictionary(defaults), - new RouteValueDictionary(constraints)); - return routeCollectionBuilder; - } - - public static IRouteBuilder MapRoute(this IRouteBuilder routeCollectionBuilder, - string name, - string template, - object defaults, - IDictionary constraints) - { - MapRoute(routeCollectionBuilder, name, template, new RouteValueDictionary(defaults), constraints); - return routeCollectionBuilder; - } - - public static IRouteBuilder MapRoute(this IRouteBuilder routeCollectionBuilder, - string name, - string template, - IDictionary defaults, object constraints) - { - MapRoute(routeCollectionBuilder, name, template, defaults, new RouteValueDictionary(constraints)); - return routeCollectionBuilder; - } - - public static IRouteBuilder MapRoute(this IRouteBuilder routeCollectionBuilder, - string name, - string template, - IDictionary defaults, - IDictionary constraints) { if (routeCollectionBuilder.DefaultHandler == null) { @@ -100,10 +43,21 @@ namespace Microsoft.AspNet.Routing routeCollectionBuilder.Routes.Add(new TemplateRoute(routeCollectionBuilder.DefaultHandler, name, template, - defaults, - constraints, + ObjectToDictionary(defaults), + ObjectToDictionary(constraints), inlineConstraintResolver)); return routeCollectionBuilder; } + + private static IDictionary ObjectToDictionary(object value) + { + var dictionary = value as IDictionary; + if (dictionary != null) + { + return dictionary; + } + + return new RouteValueDictionary(value); + } } }