如何在 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 上注册的原因。
希望这有帮助。
在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 上注册的原因。 希望这有帮助。