使用HashTable数据类型设置会话

时间:2017-10-17 08:30:37

标签: c# asp.net-core

ASP.NET Core 1.1中的会话存在问题

在WebForm中,而不是在ASP.NET Core 1.1中,我将会话用作

void ISession.Set(string key, byte[] value);
void ISession.SetInt32(string key, int value);
void ISession.SetString(string key, string value);

。现在我试图在ASP.NET Core 1.1中创建它。但是Session

只有三种方法
Hashtable data = new Hashtable();
HttpContext.Session.Set("key", data);

如何使用HashTable数据类型设置会话,如

                $interval = $timeNow->diff($previousCheckOut[0]->getCheckOut());
                $differnce = $interval->format('%H:%i:%s');
                $differnceDateTimeObj = new \DateTime($differnce);
ASP.NET Core 1.1中的

??

1 个答案:

答案 0 :(得分:4)

意味着Asp.net核心不再支持在会话中存储对象。或者更正确的是,他们不再为您自动序列化对象。

在这种情况下,您可以将其序列化为JSON,并将其存储为String。

var _data = JsonConvert.SerializeObject(data);
context.Session.SetString("key", _data); 

检索哈希:

var _data = _context.Session.GetString("key");
Hashtable retrieveData = JsonConvert.DeserializeObject<Hashtable>(retrieveData);