如何将HttpRequest转换为HttpRequestBase对象?

我的问题是相反的: 如何将HttpRequestBase转换为HttpRequest对象?

在我的ASP.NET MVC应用程序中,有许多接收HttpRequestBase作为参数的控制器使用的方法。

现在我必须从另一个方法调用这个方法,这不是一个动作(这是一个nhibernate拦截器)。 在这第二种方法中,我可以访问HttpContext.Current.Request,这是一个HttpRequest,我不能把它转换成HttpRequestBase(我认为这是可能的,由于命名…)。

有人知道这个class有什么关系,我该如何解决我的问题? 谢谢。

你会想把你的HttpRequest包装在一个HttpRequestWrapper

 var wrapper = new HttpRequestWrapper(httpRequest); 

HttpRequestWrapperinheritance自HttpRequestBase

不需要创build新实例的替代解决scheme:

 var httpRequestBase = httpRequest.RequestContext.HttpContext.Request; 

我已经在MVC 5中testing过了。