Web APIコンテキストで実行されているサービスメソッド(コントローラーの外部)からルート値を静的に取得する方法はありますか?たとえば、ASP.NETMVCで次のことができます。
var mvcHandler = HttpContext.Current.Handler as MvcHandler;
var routeValues = mvcHandler.RequestContext.RouteData.Values;
WebAPI用のこのコードの同等バージョンを見つけたいのですが。
サンプルのWebAPIリクエストをデバッグしてHttpContext.Current.Handler
を確認しようとすると、タイプはHttpControllerHandler
ですが、このタイプにはルートデータにアクセスするためのプロパティがありません。
[〜#〜]編集[〜#〜]
いくつかのより多くの情報を提供するのを助けることを試みること。値を読み取ろうとしているコードは、アプリケーションのカスタムオブジェクトを構築するファクトリクラス内にあります。
MVCリクエストまたはWebAPIリクエストのいずれかのルート値を取得するソリューションを見つけることができました。
HttpContext.Current.Request.RequestContext.RouteData
HttpRequestMessageでGetRouteData()拡張機能を使用できます。これを取得するには、System.Net.Http名前空間を含める必要があります。
System.Web.Http.Routing.IHttpRouteData routeData = Request.GetRouteData();