如何在 asp.net 核心版本 2.2.0 中创建对象值会话?

How to create session of object value in asp.net core version 2.2.0?

在Microsoft.AspNetCore.Session版本2.2.0中如何创建对象值会话。 我曾尝试阅读各种文章,但是当我尝试应用相同的文章时,它给了我错误,因为没有像 'SetString'.

这样的重载
public static class SessionHelper
    {
        public static void SetObjectAsJson<T>(this ISession session, string key, object value)
        {
            session.SetString(key, JsonConvert.SerializeObject(value));
        }

        public static T GetObjectFromJson<T>(this ISession session, string key)
        {
            var value = session.GetString(key);

            return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value);
        }
    }

在 Asp.Net 核心中,除了设置和获取会话字符串外,您还需要将 SessionMiddleware 添加到管道中,在您的 Configure 方法中的 app.UseMvc() 之前执行此操作 app.UseSession() startup.cs 文件。之后,在您的 ConfigureServices 方法中,添加以下服务。

services.AddSession(options =>
  {
      //Replace {mins} with the time you want, usually around 20-30.
      options.IdleTimeout = TimeSpan.FromMinutes({mins});               
  });

然后您可以继续使用 SessionHelper class。 另外,你的 class 的名称是错误的,它应该被称为 SessionExtensions 而不是 SessionHelper,也许这就是为什么你的扩展没有在 HttpContext.Session 上注册的原因。 希望这有帮助。