Процесс автоматического входа в приложение Windows Phone 7.1
В моем приложении Windows Phone (приложение silverlight) я хочу, чтобы пользователь автоматически входил в приложение после успешного входа. Т.е. я не хочу, чтобы пользователь заходил каждый раз.
Я достиг этого с помощью концепции изолированного файла. Т.е. сначала я создал каталог и создал отдельный поток файлов хранилища и сохранил учетные данные электронной почты и пароля в некотором файле.
Когда я прекратил отладку и снова начал ее, мой потоковый считыватель успешно считывает учетные данные пароля электронной почты из этого файла .
Моя проблема в том, что когда я закрываю свой эмулятор и открываю его обратно, я не могу прочитать из этого файла (в частности, сам каталог не существует!). Я также хочу знать, что мое изолированное хранилище сохраняется в реальном телефоне Windows?
Как я мог это исправить?
5 ответов
Это по замыслу.
Изолированное хранилище в эмуляторе не сохраняется после его закрытия.
Справка: Эмулятор Windows Phone Прокрутите вниз до "Функции":
Important Note:
Isolated storage is available while the emulator is running. Data in isolated storage does not persist after the emulator closes. This includes files stored in a local database, as these files reside in isolated storage.
Это один недостаток использования эмулятора - это не проблема на реальном телефоне.
См. http://msdn.microsoft.com/en-us/library/ff402563%28v=vs.92%29.aspx
Важное примечание: изолированное хранилище доступно во время работы эмулятора. Данные в изолированном хранилище не сохраняются после закрытия эмулятора. Это включает в себя файлы, хранящиеся в локальной базе данных, так как эти файлы находятся в изолированном хранилище.
Вы ничего не можете с этим поделать. Когда вы закрываете и снова открываете эмулятор, вы стираете все данные (приложения, содержимое изолированного хранилища, лот) с "устройства" и снова запускаете из известного состояния. Одна из причин этого заключается в том, что разработчик может переходить в "заведомо исправное" состояние устройства, чтобы вы могли тестировать эмулятор с нуля при каждом его повторном запуске.
Если вы хотите сохранить данные между запусками приложения, единственный вариант - не выключать эмулятор между запусками.
Вы также можете использовать IsolatedStorageSettings.ApplicationSettings
хранить учетные данные пользователя, а не записывать файл:
http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.isolatedstoragesettings.applicationsettings%28v=vs.95%29.aspx
И, как говорили другие, в эмуляторе эти настройки сохраняются только во время работы самого эмулятора. обратите внимание, что вам не нужно закрывать эмулятор между сеансами отладки. Вы можете нажать кнопку "Домой" на эмуляторе, чтобы проверить вход и выход из приложения.
Вы можете использовать Средство изолированного хранилища, чтобы сделать снимок изолированного хранилища вашего приложения (например, с некоторыми данными по умолчанию в нем), а затем использовать этот снимок для реверсирования изолированного содержимого хранилища после перезапуска эмулятора.
Вы можете найти более подробную информацию о ISETool и некоторые "Как сделать" о том, как: использовать статью "Средство изолированного хранилища" на msdn.