Web API получает значения маршрута

Есть ли способ статически получать значения маршрута из метода службы (за пределами контроллера), который работает в контексте Web API? Например, я могу сделать следующее в ASP.NET MVC:

var mvcHandler = HttpContext.Current.Handler as MvcHandler;
var routeValues = mvcHandler.RequestContext.RouteData.Values;

Я бы хотел найти эквивалентную версию этого кода для веб-API.

Когда я пытаюсь отлаживать образец запроса веб-API и смотрю HttpContext.Current.Handler, он имеет тип HttpControllerHandler, но этот тип не имеет никаких свойств для доступа к данным маршрута.

ИЗМЕНИТЬ

Чтобы попытаться предоставить дополнительную информацию. Код, который я пытаюсь прочитать значение, находится внутри класса factory, который создает пользовательский объект для моего приложения.

Ответы

Ответ 1

Мне удалось найти решение, которое получило бы значения маршрута для запроса MVC или запроса веб-API.

HttpContext.Current.Request.RequestContext.RouteData

Ответ 2

Вы можете использовать расширение GetRouteData() для HttpRequestMessage. Для этого вам нужно будет включить пространство имен System.Net.Http.

System.Web.Http.Routing.IHttpRouteData routeData = Request.GetRouteData();