我使用.net核心"Microsoft.AspNetCore.Session": "1.0.0"
在我的.net核心项目中使用会话,并使用MSDN上提到的扩展方法,就像这样
public static void Set<T>(this ISession session, string key, T value)
{
session.SetString(key, JsonConvert.SerializeObject(value));
}
在我的控制器中
HttpContext.Session.Set<BLL.clsPolicy>("PolicyDATAAPI", policyObj);
当我将对象传递给会话时进行序列化 它使我的对象类中的一些问题变为:私有变量不是 像这样序列化,
在没有序列化的会话中存储对象存储的任何方法? ?
答案 0 :(得分:1)
开箱即用,在.Net Core中,无法在没有序列化的情况下将对象存储在会话中。如果要为内存对象库添加会话支持,则需要实现它。
要实现它,您需要实现自己的ISession
和ISessionStore
实现,并将其注册到DI容器中。然后,您需要向ISession
添加扩展方法,以支持将密钥和对象作为参数的Set
方法。在ISession实现的内部,您可以使用线程安全字典来存储对象。
但是,开箱即用,.Net Core dos不支持在内存中存储非序列化对象。如果你想要它,你必须写它。