It’s quite simple, the routing system is initialized when the application starts and calculates the route data based on the current context, so at any time when the context itself is relevant, you are fine.
Application_BeginRequest Global.asax, , :
var routedata = RouteTable.Routes.GetRouteData(new HttpContextWrapper(Context));
, routingata RouteValueDictionary , , , DataTokens.