【问题标题】:Is there a way to convert OwinRequest to HttpRequestBase?有没有办法将 OwinRequest 转换为 HttpRequestBase?
【发布时间】:2014-10-28 00:36:52
【问题描述】:

我正在编写一个 Owin 中间件,我需要使用一些遗留代码,它使用 HttpRequestBase 作为方法参数。遗留代码不遵循 SOLID,因此无法将其扩展为使用 OwinRequest 而不是 HttpRequestBase

是否有将 OwinRequest 转换为 HttpRequestBase 的扩展(或方法)?

【问题讨论】:

  • 创建 HttpContextBase 和那些类的全部目的不是让它们都有一个共同的基础吗?现在他们创建了一组全新的 Owin 类。加油微软.....

标签: c# owin


【解决方案1】:

如果您有权访问请求的IOwinContext,则可以使用这个小技巧来获取HttpContextBase

HttpContextBase httpContext = context.Get<HttpContextBase>(typeof(HttpContextBase).FullName);

然后,您只需:

HttpRequestBase httpRequest = httpContext.Request;

【讨论】:

  • 我没有 IOwinContext。我有意编写不继承自 OwinMiddleware 的中间件。有没有办法从 IDictionary 创建一个 IOwinContext ?
  • 接受这个作为答案,因为 OwinContext c-tor 采用 IDictionary 参数并且可以从 Owin 环境轻松创建。 :) 谢谢马蒂。
猜你喜欢
  • 2014-11-06
  • 2017-03-25
  • 2021-09-01
  • 2021-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多