1 namespace System.Web.Routing {
2     using System;
3     using System.Collections.Generic;
4     using System.Globalization;
5     using System.Runtime.CompilerServices;
6 
7     [TypeForwardedFrom("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
8     public class RouteData {
9         private IRouteHandler _routeHandler;
10         private RouteValueDictionary _values = new RouteValueDictionary();
11         private RouteValueDictionary _dataTokens = new RouteValueDictionary();
12 
RouteData()13         public RouteData() {
14         }
15 
RouteData(RouteBase route, IRouteHandler routeHandler)16         public RouteData(RouteBase route, IRouteHandler routeHandler) {
17             Route = route;
18             RouteHandler = routeHandler;
19         }
20 
21         public RouteValueDictionary DataTokens {
22             get {
23                 return _dataTokens;
24             }
25         }
26 
27         public RouteBase Route {
28             get;
29             set;
30         }
31 
32         public IRouteHandler RouteHandler {
33             get {
34                 return _routeHandler;
35             }
36             set {
37                 _routeHandler = value;
38             }
39         }
40 
41         public RouteValueDictionary Values {
42             get {
43                 return _values;
44             }
45         }
46 
GetRequiredString(string valueName)47         public string GetRequiredString(string valueName) {
48             object value;
49             if (Values.TryGetValue(valueName, out value)) {
50                 string valueString = value as string;
51                 if (!String.IsNullOrEmpty(valueString)) {
52                     return valueString;
53                 }
54             }
55             throw new InvalidOperationException(
56                 String.Format(
57                     CultureInfo.CurrentUICulture,
58                     SR.GetString(SR.RouteData_RequiredValue),
59                     valueName));
60         }
61     }
62 }
63