在ASP.NET Core中怎么使用HttpContext.Current (转载)
时间: 2024-03-21 11:41:08 浏览: 201
抱歉,我需要更正一下你的问题,因为在ASP.NET Core中是没有HttpContext.Current这个属性的。在ASP.NET Core中,可以通过注入IHttpContextAccessor服务来获取HttpContext实例。
首先,在ConfigureServices方法中注册IHttpContextAccessor服务:
```csharp
services.AddHttpContextAccessor();
```
然后,在需要使用HttpContext的地方,通过构造函数注入IHttpContextAccessor服务,从而获取HttpContext实例:
```csharp
public class MyService
{
private readonly IHttpContextAccessor _httpContextAccessor;
public MyService(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public void DoSomething()
{
var httpContext = _httpContextAccessor.HttpContext;
// 使用httpContext来访问当前请求的信息
}
}
```
需要注意的是,IHttpContextAccessor服务的实现需要在程序启动时添加到服务容器中,例如:
```csharp
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseStartup<Startup>()
.ConfigureServices(services =>
{
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
})
.Build();
host.Run();
}
```
阅读全文