web-dev-qa-db-ja.com

WebAPIはルート値を取得します

Web APIコンテキストで実行されているサービスメソッド(コントローラーの外部)からルート値を静的に取得する方法はありますか?たとえば、ASP.NETMVCで次のことができます。

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

WebAPI用のこのコードの同等バージョンを見つけたいのですが。

サンプルのWebAPIリクエストをデバッグしてHttpContext.Current.Handlerを確認しようとすると、タイプはHttpControllerHandlerですが、このタイプにはルートデータにアクセスするためのプロパティがありません。

[〜#〜]編集[〜#〜]

いくつかのより多くの情報を提供するのを助けることを試みること。値を読み取ろうとしているコードは、アプリケーションのカスタムオブジェクトを構築するファクトリクラス内にあります。

14
Kyle

MVCリクエストまたはWebAPIリクエストのいずれかのルート値を取得するソリューションを見つけることができました。

HttpContext.Current.Request.RequestContext.RouteData
11
Kyle

HttpRequestMessageでGetRouteData()拡張機能を使用できます。これを取得するには、System.Net.Http名前空間を含める必要があります。

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