簡體   English   中英

Silverlight隔離存儲最佳實踐?

[英]Silverlight Isolated Storage Best Practices?

我剛剛開始真正進入Silverlight開發,我有一個特定的用例,我需要為特定用戶的“會話”存儲幾個對象或字符串集合。 我希望這是用戶特定的,並且可以在整個Silverlight應用程序中訪問。

我的第一個想法是在App.xaml上添加靜態屬性。

在用戶登錄時,我正在檢索此用戶可以從API調用訪問的對象列表,然后將這些對象存儲在App.xaml的靜態屬性中。

然后我可以在整個xaml頁面中訪問這些屬性。

我的問題是,這真的是用戶特定的嗎? 這是最佳做法嗎? 我應該在這種情況下使用隔離存儲嗎? 隔離存儲的局限性是什么? 孤立存儲本質上是用戶特定的,正確的?

謝謝

隔離存儲與用戶配置文件一起存儲在登錄用戶的計算機上。 您可以在網站內按網站和/或每個應用程序存儲數據; 網站基本上定義為XAP文件源URL,例如http://www.somedomain.com 應用程序將是一個實際的完全合格的XAP源,例如http://www.somedomain.com/ClientBin/App.Xap

可以從同一登錄用戶的IE,Safari等訪問從Firefox編寫的獨立存儲。 默認情況下,您有1 MB。

使用IS存儲數據時,您將使用流(二進制或文本)編寫文件,但寫入的文件不會存儲在用戶文件系統中保存的名稱中。 默認情況下,您可以獲得1 MB的存儲空間,但您可以從用戶請求更多存儲空間。 你應該問你需要什么加上目前使用的間距。 您只能要求用戶通過用戶交互(例如按鈕單擊)來增加配額。 您最好只詢問您需要的東西。

var is = IsolatedStorageFile.GetUserStoreForApplication();
var freespace = is.AvailableFreeSpace;
var whatyouneed = 10485760; // Request 10 MB
is.IncreaseQuotaTo( is.Quota + whatyouneed );

您還應該處理用戶拒絕為您提供所請求空間的情況。

您永遠不應該假設存儲的內容將始終存在,因為用戶可以通過Silverlight插件清除其IS。 此外,您可以完全清除IS或刪除不再需要的文件。 請記住這一點,因為用戶無法僅刪除IS中的某些項目,也沒有“dir”命令或方式來查看您存儲的文件; 你需要知道這個名字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM