如何访问 .Net 7 中的 HttpContext(因为 IHttpContextAccessor 已弃用)

Ben*_*tin 9 c# asp.net asp.net-web-api asp.net-core-webapi .net-7.0

我需要从 Asp.net Core WebApi 应用程序中的自定义组件访问 HttpContext,我找到了此页面(在“从自定义组件访问 HttpContext”点下):

https://github.com/dotnet/AspNetCore.Docs/blob/main/aspnetcore/fundamentals/http-context.md

上面的页面建议使用 IHttpContextAccessor 和builder.Services.AddHttpContextAccessor(); 登记。

此页面似乎已更新(5 个月前),但如果我想使用 IHttpContextAccessor ,那么我必须添加对Microsoft.AspnetCore.Http.Abstraction包的引用。并且这个包已被弃用。我找不到 .Net7 的任何替代包。

我怎样才能正确访问HttpContext?

小智 7

IHttpContextAccessor 并未被弃用,它包含在Microsoft.AspNetCore.App共享框架中。

如果您的项目依赖于该框架,那么它应该可以开箱即用。

如果您使用Microsoft.NetCore.App(我怀疑),您必须在 .csproj 文件中添加引用

<ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

在这里阅读更多相关信息