【问题标题】:Using HttpContextAccessor in a .NET 4.6 project在 .NET 4.6 项目中使用 HttpContextAccessor
【发布时间】:2016-07-19 12:37:55
【问题描述】:

我创建了一个同样面向 .NET 4.6 的 .NET Core 项目(一个类库),它需要能够访问当前的 HTTP 上下文。我看到我们不能再使用静态HttpContext.Current,必须注入IHttpContextAccessor 的实例。这是我仍然可以在面向 .NET 4.6 的 Web API 项目中使用的东西吗?到目前为止,我无法让 HttpContextAccessor.HttpContext 返回除 null 之外的任何内容。

【问题讨论】:

  • 你注册HttpContextAccessor了吗?
  • 那么,您希望相同的代码同时在 ASP.NET 和 ASP.NET Core 上运行吗?我不确定在这种情况下是否可行。
  • @ademcaglin 好吧,据我了解,您必须使用 IApplicationBuilder 来注册它,而我在 ASP.NET 中没有。
  • 谢谢@svick。也许我可以做一些懒惰地获取请求详细信息的事情。

标签: c# asp.net-core .net-core


【解决方案1】:

对于类库,我认为您可能希望通过构造函数或方法传递相关的变量/对象。这是一个很好的做法,因为例如,如果您在没有 httpcontext 的控制台应用程序中引用它,您的类库不会中断。

如果你在控制器方法中,你可以只使用请求或响应。​​

【讨论】:

  • 嗯,这是一个日志库,它需要记录很多关于 HTTP 请求的详细信息,所以我宁愿不必在有人需要记录某些内容时指定所有请求详细信息.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-19
  • 2017-07-18
  • 1970-01-01
相关资源
最近更新 更多