2010-03-15 102 views
1

得到了這行代碼here,但它不起作用。Silverlight 4.0:如何在隔離文件存儲中增加配額

private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication()) 
     { 
      long newSpace = isf.Quota + 1523456786435; 
      try 
      { 
       if (true == isf.IncreaseQuotaTo(newSpace)) 
       { 
        Debug.WriteLine("success"); 
       } 
       else 
       { 
        Debug.WriteLine("unsuccessful"); 
       } 
      } 
      catch (Exception ex) 
      { 

       throw ex; 
      } 
     } 
    } 

回答

3

我建議你刪除所有斷點並運行它。我只是從你提到的文章中複製代碼並且工作正常。

還有一件事。如果它不工作,然後嘗試與IE ..

如你所知,這個代碼isf.IncreaseQuotaTo(newSpace)應該在用戶發起的事件。一個對話框將顯示給用戶和用戶需要同意增加空間。

3

增加配額的請求需要來自用戶啓動的事件,例如按下按鈕或單擊按鈕。

參見備註部分:http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.isolatedstoragefile.increasequotato(VS.95).aspx

+0

我已經有一個按鈕,我將上面的代碼放在click事件中。 – xscape 2010-03-15 03:33:04

+1

這只是一個完全愚蠢的限制。我寫了一個緩存機制,我現在可能不得不放棄。 他們爲什麼選擇將其限制爲用戶事件,你實際上並沒有從中獲益。 – Oliver 2010-06-29 08:47:04

+0

我同意,如果您必須使用您無法觸及的對話框詢問用戶許可,那麼此限制有什麼意義? – andrecarlucci 2010-10-11 21:05:35

1

使用斷點將使Silverlight需要的用戶啓動操作失效,以增加存儲配額並且在調用時不會增加大小。按照建議刪除斷點,看看是否可以解決您的問題。

儘管使用Debug.Writeline應該不會引起問題。我用他們測試了我的工作代碼,它解僱了。

我的代碼是從這裏升起:http://msdn.microsoft.com/en-us/library/cc265154(VS.95).aspx

我已經採取的段是IncreaseQuota_OnClick和參考,從我的按鈕。

還有其他一些好方法。

0

確保在執行代碼之前刪除所有斷點。我犯了同樣的錯誤,一旦我刪除了斷點,事情就很好,我已經成功地增加了IsolatedStorage的大小。

+1

你從哪裏得到這個用戶正在犯「同樣的錯誤」的想法? – 2012-10-08 06:30:43

+0

安德魯,我假設他犯了同樣的錯誤。我沒有看到你需要這個問題。我遇到了類似的問題,我做了同樣的事情,所以我發佈了這個答案。 – 2012-10-09 10:24:24

+0

您的假設可能會導致某人不必要地從代碼中刪除重要的斷點,甚至無法解決問題。假設使不好的答案。 – 2012-10-09 10:26:10