Ответ 1
Мне удалось найти решение, которое получило бы значения маршрута для запроса MVC или запроса веб-API.
HttpContext.Current.Request.RequestContext.RouteData
Есть ли способ статически получать значения маршрута из метода службы (за пределами контроллера), который работает в контексте 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, который создает пользовательский объект для моего приложения.
Мне удалось найти решение, которое получило бы значения маршрута для запроса MVC или запроса веб-API.
HttpContext.Current.Request.RequestContext.RouteData
Вы можете использовать расширение GetRouteData() для HttpRequestMessage. Для этого вам нужно будет включить пространство имен System.Net.Http.
System.Web.Http.Routing.IHttpRouteData routeData = Request.GetRouteData();