Context.Session 在 Class 外部控制器中

Context.Session in a Class outside Controller

在我目前使用的控制器中Context.Session.GetString(*KEY*);
我有一个 class 需要从存储在会话

中的一些值中读取

我以前用这个HttpContext.Current.Session[*KEY*]

我试过在 Whosebug 和 MSDN 中搜索,但没有成功。

HttpContext.Current 在 ASP.NET 5 中不再存在,但是有一个新的 IHttpContextAccessor,您可以将其注入依赖项并用于检索当前的 HttpContext : https://github.com/aspnet/Hosting/blob/dev/src/Microsoft.AspNet.Hosting.Abstractions/IHttpContextAccessor.cs

public class MyComponent : IMyComponent {
    private readonly IHttpContextAccessor contextAccessor;

    public MyComponent(IHttpContextAccessor contextAccessor) {
        this.contextAccessor = contextAccessor;
    }

    public string GetDataFromSession() {
        return contextAccessor.HttpContext.Session.GetString(*KEY*);
    }
}