【问题标题】:IHttpContextAccessor Session GetStringIHttpContextAccessor 会话获取字符串
【发布时间】:2017-06-30 16:16:59
【问题描述】:

我正在尝试使用 .NET Core 运行时将 ASP.NET MVC 站点迁移到 ASP.NET Core。以前我们可以从会话存储中取出对象,即使在不同的程序集中,使用

var obj = HttpContext.Current.Session[key]

现在我读到我们必须注入 IHttpContextAccessor 并使用 _contextAccessor.HttpContext.Session 上的方法。但是 Session 对象的方法发生了变化,不再应用索引。

我在其他问题中看到有人使用 HttpContext.Session.GetString() 和 HttpContext.Session.SetString():

Access HttpContext.Current

有了这些,我至少可以反序列化我想要获取/获取的对象。但是我在界面上找不到这些方法。

“ISession”不包含“GetString”的定义,也没有扩展方法 可以找到接受“ISession”类型的第一个参数的“GetString”

如何访问这些方法?

【问题讨论】:

  • 专业提示:按 Ctrl+。在错误消息上应该建议为扩展方法和/或包添加正确的命名空间(如果尚未加载并且方法参数正确)。

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


【解决方案1】:

GetStringextension method 程序集中的extension method,请确保您对此有引用。您可能还需要导入它:

using Microsoft.AspNetCore.Http;

【讨论】:

  • 另外,如果您在 .NET Standard 库中执行此操作(即没有 Microsoft.AspNetCore.All NuGet),则需要 Microsoft.AspNetCore.Http.Extensions NuGet 否则即使添加后仍然会出现此错误使用行。
猜你喜欢
  • 2018-09-30
  • 2020-08-05
  • 1970-01-01
  • 1970-01-01
  • 2021-09-04
  • 2014-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多