此行不起作用
System.Web.HttpContext.Current.Session.RemoveAll();
严重级代码说明项目文件行源抑制状态 错误CS0234类型或命名空间名称' Web'不存在于 命名空间'系统' (你错过了程序集引用吗?)MVC6.DNX 核心5.0 26
被修改
我创建了这个
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);
}
}
我如何使用static func
中的会话方法集
public static class SessionHandler
{
public static void SetSessionId(long? id)
{
new MySession().Set("id", id);
}
}
答案 0 :(得分:1)
会话系统已完全重写。在普通控制器中,您可以使用HttpContext.Session
,但如果您在其他地方需要它,则需要使用IHttpContextAccessor
注入它。
查看此blog post以获取更多信息。