Есть ли способ уменьшить емкость IsolatedStorage в Silverlight? - PullRequest
1 голос
/ 14 апреля 2010

С помощью этого кода я могу заставить Silverlight спросить пользователя, хочет ли он увеличить IsolatedStorage:

private void Button_IncreaseIsolatedStorage_Click(object sender, RoutedEventArgs e)
{
    IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
    long newStorageCapacityInBytes = FileHelpers.GetMaxiumumSpace() + SystemHelpers.GetAmountOfStorageToIncreaseWhenNeededInBytes();
    store.IncreaseQuotaTo(newStorageCapacityInBytes);
    Message = "IsolatedStorage increased. " + FileHelpers.GetSpaceLeftMessage();
}

Но если я пытаюсь установить его на величину, меньшую, чем текущая, я получаю сообщение об ошибке, что это невозможно.

  1. Есть ли обходной путь для этого, то есть можно ли уменьшить количество IsolatedStorage? Это было бы полезно по крайней мере для целей тестирования.

  2. Смежный вопрос: Когда пользователь соглашается увеличить изолированное хранилище, могут ли другие приложения использовать эту емкость или только приложение, в котором он ее увеличил? Я предполагаю, что это причина вышеуказанного ограничения .

Ответы [ 2 ]

2 голосов
/ 14 апреля 2010

Поскольку увеличение выполняется в изолированном хранилище Файл , только ваша заявка (или другие приложения, размещенные в вашем домене) могут использовать новую квоту:

Поскольку изолированные хранилища относятся к определенным сборкам, большинство других управляемых кодов не смогут получить доступ к данным вашего кода (управляемый код с высокой степенью доверия и инструменты администрирования могут обращаться к хранилищам из других сборок). Неуправляемый код может получить доступ к любым изолированным хранилищам.

Кроме того, кажется, что после увеличения вы не можете вернуться назад (программно):

Приложение делит свою квоту со всеми другими приложениями, размещенными в том же домене (веб-сайте). Начальная квота составляет 1 МБ, которая будет использоваться всеми приложениями домена. Новый размер квоты не должен быть меньше текущей квоты. Допускается только увеличение квоты.

http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.isolatedstoragefile.increasequotato%28v=VS.95%29.aspx

0 голосов
/ 14 апреля 2010

Единственный способ уменьшить IsolatedStorage после выделения - это удалить сайты IsolatedStorage с помощью диалога конфигурации Silverlight. Вы не можете сделать это программно, пользователь должен открыть диалоговое окно конфигурации и сознательно выбрать удалить хранилище сайтов.

Квота выделяется сайту, поэтому да, когда одно приложение запрашивает увеличение квоты, другие приложения на сайте могут выделять пространство из этой квоты.

...