如何在控制器之外获取HttpRequestMessage

时间:2016-11-11 00:48:33

标签: asp.net-web-api2 httprequest owin

我有一个Web API v2控制器,它使方法调用同一项目中的服务。该服务使用UrlHelper类来组合网址,但UrlHelper类需要HttpRequestMessage才能构建正确的网址。

如何从API控制器之外的类(我的服务)中获取HttpRequestMessage?我可以将HttpRequestMessage传递给服务方法吗?还有另一种从全局环境中访问的方法吗?

我正在使用自托管环境(OWIN)。

1 个答案:

答案 0 :(得分:2)

public class FooController : ApiController
{
    public IHttpActionResult BarAction()
    {
        UrlHelper urlHelper = GetUrlHelperFromWhereever();
        urlHelper.DoSomething( this.Request );
    }

this.Request是HttpRequestMessage:https://msdn.microsoft.com/en-us/library/system.web.http.apicontroller.request(v=vs.118).aspx#P:System.Web.Http.ApiController.Request