@@ -23,71 +23,14 @@ public static IRouteBuilder MapRoute(this IRouteBuilder routeCollectionBuilder,
2323 string template ,
2424 object defaults )
2525 {
26- MapRoute ( routeCollectionBuilder , name , template , new RouteValueDictionary ( defaults ) ) ;
27- return routeCollectionBuilder ;
28- }
29-
30- public static IRouteBuilder MapRoute ( this IRouteBuilder routeCollectionBuilder ,
31- string name ,
32- string template ,
33- IDictionary < string , object > defaults )
34- {
35- if ( routeCollectionBuilder . DefaultHandler == null )
36- {
37- throw new InvalidOperationException ( Resources . DefaultHandler_MustBeSet ) ;
38- }
39-
40- var inlineConstraintResolver = routeCollectionBuilder
41- . ServiceProvider
42- . GetService < IInlineConstraintResolver > ( ) ;
43-
44- routeCollectionBuilder . Routes . Add ( new TemplateRoute ( routeCollectionBuilder . DefaultHandler ,
45- name ,
46- template ,
47- defaults ,
48- constraints : null ,
49- inlineConstraintResolver : inlineConstraintResolver ) ) ;
50- return routeCollectionBuilder ;
26+ return MapRoute ( routeCollectionBuilder , name , template , defaults , constraints : null ) ;
5127 }
5228
5329 public static IRouteBuilder MapRoute ( this IRouteBuilder routeCollectionBuilder ,
5430 string name ,
5531 string template ,
5632 object defaults ,
5733 object constraints )
58- {
59- MapRoute ( routeCollectionBuilder ,
60- name ,
61- template ,
62- new RouteValueDictionary ( defaults ) ,
63- new RouteValueDictionary ( constraints ) ) ;
64- return routeCollectionBuilder ;
65- }
66-
67- public static IRouteBuilder MapRoute ( this IRouteBuilder routeCollectionBuilder ,
68- string name ,
69- string template ,
70- object defaults ,
71- IDictionary < string , object > constraints )
72- {
73- MapRoute ( routeCollectionBuilder , name , template , new RouteValueDictionary ( defaults ) , constraints ) ;
74- return routeCollectionBuilder ;
75- }
76-
77- public static IRouteBuilder MapRoute ( this IRouteBuilder routeCollectionBuilder ,
78- string name ,
79- string template ,
80- IDictionary < string , object > defaults , object constraints )
81- {
82- MapRoute ( routeCollectionBuilder , name , template , defaults , new RouteValueDictionary ( constraints ) ) ;
83- return routeCollectionBuilder ;
84- }
85-
86- public static IRouteBuilder MapRoute ( this IRouteBuilder routeCollectionBuilder ,
87- string name ,
88- string template ,
89- IDictionary < string , object > defaults ,
90- IDictionary < string , object > constraints )
9134 {
9235 if ( routeCollectionBuilder . DefaultHandler == null )
9336 {
@@ -100,10 +43,21 @@ public static IRouteBuilder MapRoute(this IRouteBuilder routeCollectionBuilder,
10043 routeCollectionBuilder . Routes . Add ( new TemplateRoute ( routeCollectionBuilder . DefaultHandler ,
10144 name ,
10245 template ,
103- defaults ,
104- constraints ,
46+ ObjectToDictionary ( defaults ) ,
47+ ObjectToDictionary ( constraints ) ,
10548 inlineConstraintResolver ) ) ;
10649 return routeCollectionBuilder ;
10750 }
51+
52+ private static IDictionary < string , object > ObjectToDictionary ( object value )
53+ {
54+ var dictionary = value as IDictionary < string , object > ;
55+ if ( dictionary != null )
56+ {
57+ return dictionary ;
58+ }
59+
60+ return new RouteValueDictionary ( value ) ;
61+ }
10862 }
10963}
0 commit comments