gpt4 book ai didi

c# - 如何在 .NET Core 3 的 Controller 构造函数中访问 HttpContext?

转载 作者:行者123 更新时间:2023-12-05 02:08:34 25 4
gpt4 key购买 nike

.NET Core 3.1 如何在 Controller 的构造函数中访问 HttpContext?

它在构造函数中似乎总是为空,但在实际方法中是可用的。这在 MVC 4 中是可能的,并且在尝试将项目移植到 .NET Core 时出现了。

如果我尝试通过 DI 使用 HttpContextAccessor,则会失败并出现异常:

InvalidOperationException:尝试激活“MyProject.Controllers.UsersController”时无法解析“Microsoft.AspNetCore.Http.HttpContextAccessor”类型的服务

最佳答案

您可以使用IHttpContextAccessor 来访问HttpContext

要访问 HttpContext,您必须将 services.AddHttpContextAccessor() 添加到 ConfigureService 方法

services.AddHttpContextAccessor();

并从构造函数中的依赖注入(inject)中获取IHttpContextAccessor

private readonly IHttpContextAccessor _httpContextAccessor;

public UsersController(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}

访问HttpContext

_httpContextAccessor.HttpContext

关于c# - 如何在 .NET Core 3 的 Controller 构造函数中访问 HttpContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60740724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com