如何在控制器外获取HttpRequestMessage

How to obtain HttpRequestMessage outside of controller

我有一个 Web API v2 控制器,它对同一项目中的服务进行方法调用。该服务使用 UrlHelper class 组合 URL 但是,UrlHelper class 需要 HttpRequestMessage 才能构建正确的 URL .

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

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

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