詳解Silverlight 2中的獨立存儲(Isolated Storage)
[2] 詳解Silverlight 2中的獨立存儲(Isolated Storage)
[3] 詳解Silverlight 2中的獨立存儲(Isolated Storage)
[4] 詳解Silverlight 2中的獨立存儲(Isolated Storage)
[5] 詳解Silverlight 2中的獨立存儲(Isolated Storage)
[6] 詳解Silverlight 2中的獨立存儲(Isolated Storage)
[7] 詳解Silverlight 2中的獨立存儲(Isolated Storage)
概述
獨立存儲(Isolated Storage)是Silverlight 2中提供的一個客戶端安全的存儲,它是一個與Cookie機制類似的局部信任機制。獨立存儲機制的APIs 提供了一個虛擬的文件系統和可以訪問這個虛擬文件系統的數據流對象。Silverlight中的獨立存儲是基于 .NET Framework中的獨立存儲來建立的,所以它僅僅是.NET Framework中獨立存儲的一個子集。
Silverlight中的獨立存儲有以下一些特征:
1.每個基于Silverlight的應用程序都被分配了屬于它自己的一部分存儲空間, 但是應用程序中的程序集卻是在存儲空間中共享的。一個應用程序被服務器賦給了一個唯一的固定的標識值。基于Silverlight的應用程序的虛擬文件系統現在就以一個標識值的方式來訪問了。這個標識值必須是一個常量,這樣每次應用程序運行時才可以找到這個共享的位置。
2.獨立存儲的APIs 其實和其它的文件操作APIs類似,比如 File 和 Directory 這些用來訪問和維護文件或文件夾的類。 它們都是基于FileStream APIs 來維護文件的內容的。
3.獨立存儲嚴格的限制了應用程序可以存儲的數據的大小,目前的上限是每個應用程序為1 MB。
使用獨立存儲
Silverlight中的獨立存儲功能通過密封類IsolatedStorageFile來提供,位于命名空間System.IO.IsolatedStorag中,IsolatedStorageFile類抽象了獨立存儲的虛擬文件系統。創建一個 IsolatedStorageFile 類的實例,可以使用它對文件或文件夾進行列舉或管理。同樣還可以使用該類的 IsolatedStorageFileStream 對象來管理文件內容,它的定義大概如下所示:
在Silverlight 2中支持兩種方式的獨立存儲,即按應用程序存儲或者按站點存儲,可以分別使用GetUserStoreForApplication方法和GetUserStoreForSite方法來獲取IsolatedStorageFile對象。下面看一個簡單的示例,最終的效果如下圖所示: