Мне нужно сохранить несколько вещей в сеансе. На данный момент я использую сессию InProc на моей машине разработки, но я хочу развернуть ее с помощью сеанса SQL-сервера, а затем сеанса Azure в AppFabric.сохранение объекта в сеансе
Я создал объект, который содержит несколько свойств, все примитивные типы. Я обработка чтения сеанса, как это:
SessionObject TheCurrentSession =
HttpContext.Current.Session["UserAppSession"] as SessionObject;
В принципе, я оберточный переменные сессии в объекте, который сериализация и десериализации каждый раз, когда сеансовые нагрузки и позволяет экономить.
Мне интересно, было бы лучше хранить каждое свойство в его родном формате и иметь объект-обертку, который будет читать/сохранять каждый из его свойств в сеансе как родной.
Так, например, я должен был бы метод, называемого RecreateSession так:
public class SessionObject
{
public void RecreateSession()
{
this.SessionObjectProperty1 =
HttpContext.Current.Session["SessionObjectProperty1"];
this.SessionObjectProperty2 = ...;
this.SessionObjectProperty3 = ...;
}
}
я думаю, что сделать это будет препятствовать процессу сериализации/десериализации и могу сделать значение, доступного непосредственно в других частях коды (т. е. HTTP-модуль).
Стоит ли менять мою сессию? Каковы наилучшие методы для этого?
Спасибо за ваши предложения.
Хорошо, вы считаете, что сохранение сериализации/десериализации в объекте является лучшим способом хранения сеанса или вы считаете, что я должен хранить каждое свойство напрямую и создавать объект-оболочку, читая каждое свойство из контекста asp.net сессия? Я думаю, что в любом случае все будет в порядке с моим кодом. – frenchie
@frenchie - Нет необходимости писать собственный код сериализации. Легче просто назначить свойство и приложить его по мере необходимости. – Oded
Да, я знаю, что это автоматически сериализуется; но даже если фреймворк обрабатывает его автоматически, он все равно должен это сделать. Может ли эта постоянная сериализация/десериализация стать проблемой производительности/масштабирования в какой-то момент? – frenchie