Сохранение списка элементов в Application State ASP.NET MVC? - PullRequest
0 голосов
/ 10 мая 2010

У меня возникли некоторые проблемы с пониманием того, как я могу сохранить элементы из списка, который у меня есть, в состоянии приложения в global.asax as- Application [""].

Мой контроллер в основном принимает какой-то пользовательский ввод, затем я передаю его другому классу Method, в качестве параметров он все время добавляется в список. Эти данные добавляются в список, я хочу его сохранить, но без использования БД. Используя Application State. , Я создавал этот класс и вызывал его метод для возврата списка элементов, но я не думаю, что Application State сохраняет его.

Вот то, что я имею до сих пор. .

        protected void Application_Start()
    {
        RegisterRoutes(RouteTable.Routes);


        TimeLineInformation t = new TimeLineInformation();
        IList<SWTimeEnvInfoDTO> g = t.getInfo();

        Application["AppID"] =  g;
    }

^ Global.asax

        IList<SWTimeEnvInfoDTO> result = new List<SWTimeEnvInfoDTO>();

    public  void returnTimeLineInfo(string SWrelease, string EnvName, DateTime SDate, DateTime EDate) {


        SWTimeEnvInfoDTO myDTO = new SWTimeEnvInfoDTO();
        myDTO.softwareReleaseName = SWrelease;
        myDTO.environmentName = EnvName; 
        myDTO.StartDate = SDate;
        myDTO.EndDate = EDate;

        result.Add(myDTO);

        getInfo();


    }


    public IList<SWTimeEnvInfoDTO> getInfo() {

        return result;

    }

^ класс я звоню

Тип SWTimeEnvInfoDTO имеет методы get и set для данных.

Я также вызываю приложение из View. Работает со строкой

Application ["AppID"] = "fgt";

и показывает это, как только я читаю это с моей точки зрения.

1 Ответ

1 голос
/ 10 мая 2010

Обновлено : Вы должны использовать приведение для получения переменной, сохраненной в приложении, и сохранить ее, если она изменилась:

IList<SWTimeEnvInfoDTO> result = Application["AppID"] != null ? (IList<SWTimeEnvInfoDTO>)Application["AppID"] : new List<SWTimeEnvInfoDTO>(); // retrieve data  

result.Add(...);               // add some new items
Application["AppID"] = result; // save added values
...