Мне нужны некоторые идеи, чтобы лучше сохранить объект при многостраничных запросах без использования переменных сеанса, файлов cookie, кэша контекста, состояния просмотра или базы данных сеанса.
У меня есть веб-форма (ASPX), который будет содержать несколько пользовательских элементов управления, которые будут действовать как «страницы», и эти элементы управления будут отображаться поочередно:
<uc1:UserControl1 id="controlStep1" runat="server" visible="true" />
<uc2:UserControl2 id="controlStep2" runat="server" visible="false" />
<uc3:UserControl3 id="controlStep3" runat="server" visible="false" />
У меня есть объект, который я используюсодержать различные параметры.Эти параметры поступают в приложение в виде значений строки запроса, и этот объект лениво загружает их.Например:
public class Situation
{
private string _jobId;
private JobType _jobType;
public string JobId
{
get
{
if (!String.IsNullOrWhitespace(_jobId))
return _jobId;
_jobId = GetFromQueryString("jid");
return _jobId;
}
}
public JobType JobType
{
get
{
if (_jobType != JobType.Default)
return _jobType;
_jobType = GetEnumFromQueryString("jtype", typeof(JobType));
return _jobType;
}
}
}
Я бы хотел сохранить этот объект Ситуация, пока клиент находится в веб-приложении, используя интерфейс в стиле мастера, когда переключается видимость пользовательских элементов управления.В данный момент я создаю экземпляр объекта situ в HttpModule во время первого запроса клиента и сохраняю его в HttpContext.Current.Items, но я бы хотел использовать отложенную загрузку, чтобы различные свойства объекта situ были толькозагружается по мере необходимости.Тем не менее, если, например, доступ к свойству осуществляется через controlStep1, я хотел бы сохранить состояние объекта, чтобы при обращении к тому же свойству через controlStep2 получателю не приходилось возвращаться к строке запроса, чтобы получитьЗапрашиваемая стоимость имущества.Я мог бы сериализовать объект и десериализовать в HttpModule, но если к свойству обращаются и загружают, оно не запомнится при следующем запросе.
Есть предложения?