Идеи для настойчивого подхода - PullRequest
0 голосов
/ 19 июля 2010

Мне нужны некоторые идеи, чтобы лучше сохранить объект при многостраничных запросах без использования переменных сеанса, файлов 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, но если к свойству обращаются и загружают, оно не запомнится при следующем запросе.

Есть предложения?

1 Ответ

1 голос
/ 19 июля 2010

Файловая система иногда является полезным механизмом сохранения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...