none
IsolatedStorage в Silverlight RRS feed

  • Вопрос

  • реализую запись в изолированное хранилище, пишу так:

    using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())

    {

    ...код

    }

    но выдает ошибку доступа, ругается что хранилище не включено, что делать.

    Может ето надо: я создал клас, где реализуются public методы хранилища, добавил ссылку на них в главное окно и юзаю

    • Изменен тип Letos07 12 марта 2011 г. 17:12
    7 марта 2011 г. 17:10

Ответы

  • У вас ошибка не в IsolatedStorage. Вы неправильно обрабатываете исключение:

          catch 
            {
              IsolatedStorageException Ex = new IsolatedStorageException();
              MessageBox.Show(Ex.Message);
            }
    

    При ошибке в try этот код не выводит ошибку, которая произошла. Он создает новое исключение и выводит его. Правильнее будет так:

    catch (Exception ex)
            {
              MessageBox.Show(ex.Message);
            }
    

    Но лучше на время тестирование вообще убрать try-catch, запустить в отладке и посмотреть, где происходит исключение и какие при этом значения имеют локальные переменные и тп...

    У вас ошибка Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection. в функции EncryptData в строке ms.Write(fin, 0, 100); , массив байт fin меньшего размера, используйте fin.Length.

    Далее, в той же функции закомментируйте строчки

       encStream.Close();
       fout.Close();

    т.к. они закрывают поток, который итак будет закрыт в SaveData. Иначе будет ошибка доступа к закрытом файлу.

    В общем отлаживайте, проблема не в IsolatedStorage, он работает как надо.

     


    Для связи [mail]
    • Помечено в качестве ответа Letos07 15 марта 2011 г. 11:12
    12 марта 2011 г. 19:22
    Модератор

Все ответы

  • тут что вообще никто не сидит, не читает сообщения?
    10 марта 2011 г. 20:18
  • Развернутая статья по изолированному хранилищу:

    http://msdn.microsoft.com/ru-ru/library/c76z57x8(v=VS.95).aspx

    10 марта 2011 г. 21:18
    Отвечающий
  • я ето уже смотрел, посмотрите пожалуйста на мой пример http://depositfiles.com/files/qfz2f4pbm  почему он не работает?
    12 марта 2011 г. 17:11
  • У вас ошибка не в IsolatedStorage. Вы неправильно обрабатываете исключение:

          catch 
            {
              IsolatedStorageException Ex = new IsolatedStorageException();
              MessageBox.Show(Ex.Message);
            }
    

    При ошибке в try этот код не выводит ошибку, которая произошла. Он создает новое исключение и выводит его. Правильнее будет так:

    catch (Exception ex)
            {
              MessageBox.Show(ex.Message);
            }
    

    Но лучше на время тестирование вообще убрать try-catch, запустить в отладке и посмотреть, где происходит исключение и какие при этом значения имеют локальные переменные и тп...

    У вас ошибка Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection. в функции EncryptData в строке ms.Write(fin, 0, 100); , массив байт fin меньшего размера, используйте fin.Length.

    Далее, в той же функции закомментируйте строчки

       encStream.Close();
       fout.Close();

    т.к. они закрывают поток, который итак будет закрыт в SaveData. Иначе будет ошибка доступа к закрытом файлу.

    В общем отлаживайте, проблема не в IsolatedStorage, он работает как надо.

     


    Для связи [mail]
    • Помечено в качестве ответа Letos07 15 марта 2011 г. 11:12
    12 марта 2011 г. 19:22
    Модератор
  • спасибо, но вот в чем вопрос у меня почему-то не работает отладка??
    12 марта 2011 г. 21:19
  • Попробуйте установить Silverlight 4 for Developers.


    Для связи [mail]
    12 марта 2011 г. 21:47
    Модератор
  • установил, но когда приложение доходит к БП браузер зависает - и помогает только диспетчер задач(

    ето у меня и на IE8, Opera11.1, Mozilla3.6.15(

    13 марта 2011 г. 9:22
  • Изначальная проблема с IsolatedStorage решена, отметьте ответ. По поводу отладки silverlight приложений - нужно создать новую тему в разделе visual studio , в которой подробно описать проблему, при этом не забыв указать версию visual studio, версию silverligh, и другую полезную информацию. Спасибо.

    Для связи [mail]
    14 марта 2011 г. 14:03
    Модератор