我的项目运行在.NET框架4.8上,然后将其迁移到.NET 6。
public static bool SIMInside
{
get
{
return (bool)HttpContext.Current.Session["SIMInside"];
}
set
{
HttpContext.Current.Session["SIMInside"] = value;
}
}如何在Asp.Net核心6中实现这一点?我知道我需要在builder.Services.AddHttpContextAccessor();中添加Program.cs,然后注入到所需的位置。我试过了,但没有结果:
public static bool SIMInside
{
get
{
return _contextAccessor.HttpContext.Session.Get("SIMInside");
}
set
{
_contextAccessor.HttpContext.Session.Set("SIMInside", value);
}
}在本例中,Get返回byte[]数组,或者Set也需要byte[]数组
发布于 2022-02-17 08:15:14
与传统的ASP.NET应用程序相比,ASP.NET核心有一种使用会话的不同方式。
不幸的是,您不能再在其中存储复杂的对象。为了存储对象,它被转换成JSON并作为字符串存储。稍后,检索为字符串,并将其反序列化为原始对象。
在您的示例中,您可以使用SetInt32 and GetInt32存储和检索1表示true,0表示false,然后解析值。
Convert.ToBoolean(session.GetInt32(“SIMInside”));
session.SetInt32(“SIMInside”, Convert.ToInt32(value));不要忘记使app.UseSession();能够使用会话。
https://stackoverflow.com/questions/71154135
复制相似问题