我讓我的專案在 .NET 框架 4.8 上運行,然后將其遷移到 .NET 6。每當我需要從 Session 訪問特定屬性時,我都會使用:
public static bool SIMInside
{
get
{
return (bool)HttpContext.Current.Session["SIMInside"];
}
set
{
HttpContext.Current.Session["SIMInside"] = value;
}
}
如何在 Asp.Net core 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[]陣列
uj5u.com熱心網友回復:
與經典 ASP.NET 應用程式相比,ASP.NET Core 使用會話的方式不同。
不幸的是,您不能再在其中存盤復雜的物件。為了存盤物件,它被轉換為 JSON 并存盤為字串。稍后,將其作為字串檢索并反序列化為原始物件。
在您的情況下,您可以使用SetInt32 and GetInt32存盤和檢索 1 為真, 0 為假,然后決議該值。
Convert.ToBoolean(session.GetInt32(“SIMInside”));
session.SetInt32(“SIMInside”, Convert.ToInt32(value));
不要忘記啟用app.UseSession();才能使用會話。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/429666.html
