ASP.NET 5 (ядро): Как хранить объекты в сеансовом кэше (ISession)?


Я пишу ASP.NET 5 MVC 6 (Core) приложение. Теперь я подошел к точке, где мне нужно сохранить (установить и получить) объект в сеансовом кэше (ISession).

Как вы, возможно, знаете, Set-метод ISession принимает byte-array, а Get-метод возвращает единицу.

В непрофильном приложении я бы использовал BinaryFormatter для преобразования моего объекта. Но как это сделать в основном приложении?

1 11

1 ответ:

Я бы пошел с сериализацией объектов в JSON и использовал методы расширений на ISession, чтобы сохранить их как string ' s.

// Save
var key = "my-key";
var str = JsonConvert.SerializeObject(obj);
context.Session.SetString(key, str);

// Retrieve
var str = context.Session.GetString(key);
var obj = JsonConvert.DeserializeObject<MyType>(str);

Методы расширения на ISession определены в пространстве имен Microsoft.AspNet(Core).Http.