有没有办法将OwinRequest转换为HttpRequestBase?
问题描述:
我在写一篇Owin Middleware,我需要使用一些遗留代码,它使用HttpRequestBase作为方法参数。遗留代码不遵循SOLID,所以不可能将其扩展为使用OwinRequest而不是HttpRequestBase有没有办法将OwinRequest转换为HttpRequestBase?
是否存在将OwinRequest转换为HttpRequestBase的扩展(或方式)?
答
如果你有访问请求的IOwinContext
,你可以用这个小黑客获得HttpContextBase
:
HttpContextBase httpContext = context.Get<HttpContextBase>(typeof(HttpContextBase).FullName);
然后,你只想:我
HttpRequestBase httpRequest = httpContext.Request;
不拥有IOwinContext。我有意编写不从OwinMiddleware继承的中间件。有什么办法从IDictionary创建一个IOwinContext? –
Maciek
2014-10-27 16:45:07
由于OwinContext c-tor接受IDictionary参数并且可以从Owin环境轻松创建,因此接受此答案作为答案。 :)谢谢Mati。 –
Maciek
2014-10-28 08:38:34