У меня есть приложение winform, которое использует некоторые ссылочные веб-сервисы для получения данных. Возвращенные данные представляют собой массив объектов, которые я перебираю и добавляю в набор данных.
Когда я звоню в службу, для получения всех данных часто может потребоваться 2 или 3 минуты.
Если пользователь выходит из программы и возвращается позже, я не хочу, чтобы он снова загружал все данные.
Когда я запускаю приложение в режиме отладки, загруженная информация не сохраняется; что меня беспокоит.
Я все еще в "режиме разработки", поэтому я еще не собрал установщик, чтобы проверить, остается ли информация в приложении.
Мне любопытно несколько вещей:
- Сохраняются ли данные, хранящиеся в наборе данных, после выхода пользователя?
- Если нет, что бы вы посоветовали, как этого добиться?
- Я рассмотрел XML для хранения; Это лучший вариант, когда у вас есть 9-10 МБ данных?
Изменить: окончательный результат:
ОК - вот итоговый результат (спасибо всем за быстрый ответ)
Когда приложение закрывается, я вызываю функцию для сохранения данных. Вот фрагмент кода:
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
FileStream fs;
IFormatter formatter = new BinaryFormatter();
//activities
if (actList.Length > 0)
{
fs = new FileStream("activities.bin", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(fs, actList);
fs.Close();
}
//users
if (userList.Length > 0)
{
fs = new FileStream("users.bin", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(fs, userList);
fs.Close();
}
Параметры userList и actList - это объекты List, полученные из вызова веб-служб.
Еще одна вещь, которую я реализовал (немного не по теме), - создать настройку приложения для сохранения, когда пользователь последний раз делал загрузку из веб-службы. Сохранено как
Properties.Settings.Default.last_downloaded
Если пользователь нажимает кнопку загрузки, ему предлагается указать дату, когда он последний раз выполнял загрузку, и ему предоставляется возможность сказать «нет».
Еще раз спасибо за вашу помощь!