Почему так сложно получить значения маршрута вне контекста контроллера?

Я не понимаю, что за этим стоит, почему так легко получить значения маршрута внутриRequest контроллера, но почти невозможно сделать то же самое наHttpContext.Current.Request?

Может быть, я просто не знаю лучшего пути, и он существует. Может ли кто-нибудь подтвердить, что это единственный способ получить данные маршрута вне контроллера?

пример
[Route("{id}"), HttpGet]
public IHttpActionResult Test()
{
    // Simple and easy
    var route1 = Request.GetRouteData().Values["id"];

    // Wat. This is also ~6 times slower
    var routeValues = (IHttpRouteData[]) HttpContext.Current.Request.RequestContext.RouteData.Values["MS_SubRoutes"];
    var route2 = routeValues.SelectMany(x => x.Values).Where(x => x.Key == "id").Select(x => x.Value).FirstOrDefault();

    return Ok(route1 == route2); // true
}

Ответы на вопрос(2)

Ваш ответ на вопрос