2010-04-14 3 views
1

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

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

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

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

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

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

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

0

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

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

Смежные вопросы