c# - 如何在.net core 2.0 中实现HttpContext?

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

我一直在尝试在 ASP.NET MVC 和 system.web 中实现 http 上下文,它只会允许我使用 HttpContext.Current 来访问上下文。不管怎样,我首先在 StartUp 类的 configureService 方法中注入(inject)了 IhttpcontextAccessor。 我发布这个是为了看看是否有人使用 .Net Core 2.0 实现了这个。 如果是这样,请随时分享知识。提前致谢。

 services.AddSingleton<HttpContextAccessor, HttpContextAccessor>();

最佳答案

如果您需要来自 Controller 的它,那么只需使用 HttpContext,正如 Muqeet 的回答所说。

如果您确实需要注入(inject)它,那么您使用 AddSingleton 就走在了正确的轨道上,但是您有一个轻微的拼写错误:

services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();

注意第一种类型中的 I

然后设置你的构造函数:

public class UserService : IUserService {
    private readonly HttpContext _context;

    public UserService(IHttpContextAccessor httpContextAccessor) {
        _context = httpContextAccessor.HttpContext;
    }
}

然后您可以在类(class)的任何其他地方使用context

这是依赖注入(inject)的基础。 AddSingleton 使其可用于注入(inject)。然后你通过将它添加到你的构造函数来在你需要它的地方请求它。

Maarten 在他的评论中链接到的那篇文章有更详细的解释。

关于c# - 如何在.net core 2.0 中实现HttpContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47815258/

相关文章:

c# - ASP.NET Core docker 构建错误

c# - 与 IMediatR 库一起使用时无法在类型化客户端中注入(inject) HttpClient

c# - 如何在 ASP.NET Core 2.0 中配置登录尝试并由管理员手动解锁?

c# - 保存和自动保存 PowerPoint OpenXML PresentationDocuments

c# - WPF 有 e.CloseReason 吗?

javascript - 过滤表中的行失败

c# - 如果字段为空,如何不在 mongodb 中插入字段?

c++ - 与 Windows GUI 交互

c# - 安全软件许可证检查/验证

c# - 异常处理——这是好的做法吗?