HttpContext不推荐直接在依赖项中注入。相反,您应该使用IHttpContextAccessor:
public class MyComponent : IMyComponent {
private readonly IHttpContextAccessor contextAccessor;
public MyComponent(IHttpContextAccessor contextAccessor) {
this.contextAccessor = contextAccessor;
}
public string GetDataFromSession() {
return contextAccessor.HttpContext.Session.GetString(*KEY*);
}
}
Run Code Online (Sandbox Code Playgroud)
也就是说,在控制器中通常不需要它,您可以HttpContext使用该Context属性轻松检索当前。
当然,由于控制器的创建方式,在实例化控制器时该属性是不可用的,所以不要尝试从构造函数中访问它。在这种情况下,尝试重构您的代码以避免访问HttpContext那里或IHttpContextAccessor用作替代品。
| 归档时间: |
|
| 查看次数: |
643 次 |
| 最近记录: |