C# 如何在MVC6的静态函数中使用会话
这条线坏了C# 如何在MVC6的静态函数中使用会话,c#,asp.net-core-mvc,C#,Asp.net Core Mvc,这条线坏了 System.Web.HttpContext.Current.Session.RemoveAll(); 严重性代码说明项目文件行源抑制状态 错误CS0234中不存在类型或命名空间名称“Web” 命名空间“System”(是否缺少程序集引用?) 核心5.0 26 编辑 我创造了这个 会话系统已完全重写。在普通控制器中,您可以只使用HttpContext.Session,但如果您在其他地方需要它,则需要使用IHttpContextAccessor注入它 查看此项了解更多信息。在.net
System.Web.HttpContext.Current.Session.RemoveAll();
严重性代码说明项目文件行源抑制状态
错误CS0234中不存在类型或命名空间名称“Web”
命名空间“System”(是否缺少程序集引用?)
核心5.0 26
编辑
我创造了这个
会话系统已完全重写。在普通控制器中,您可以只使用
HttpContext.Session
,但如果您在其他地方需要它,则需要使用IHttpContextAccessor
注入它
查看此项了解更多信息。在.net core 1和2中,您还需要在启动时对其进行配置。
public class MySession
{
private readonly IHttpContextAccessor _httpContextAccessor;
private ISession _session => _httpContextAccessor.HttpContext.Session;
public MySession(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public void Set(string key,object o)
{
_session.Set(key,o);
}
public void Get(string key)
{
var message = _session.GetString(key);
}
}
public static class SessionEx
{
public static void Set(this ISession session, string key, object value)
{
session.SetString(key, JsonConvert.SerializeObject(value));
}
public static T Get<T>(this ISession session, string key)
{
var value = session.GetString(key);
return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value);
}
}
public static class SessionHandler
{
public static void SetSessionId(long? id)
{
new MySession().Set("id", id);
}
}