Isolated Storage[隔離儲存區 (Isolated Storage)]有兩種方式在本機存放區你的資料。第一是通過庫中的鍵/值對,叫做IsolatedStorageSettings。第二是通過建立真實的檔案和目錄,叫做IsolatedStorageFile。
IsolatedStorageSettings允許你在一個字典中儲存鍵/值對(注意,無需任何設定),然後再讀取出來。這些資料會一直儲存著,無論應用程式停止/啟動,或者關機等等。除非你刪除它,或者使用者卸載你的應用程式,否則它一直存在。但是在它被添加到字典中之前是無法讀取的。
IsolatedStorageSettings可提供一種將使用者特定資料存放區為本地 IsolatedStorageSettings中的鍵/值對的便捷方法。一種典型的用途是儲存設定資訊。並且這裡所能儲存的索引值對中的“值”不只限於字串,而且可以是一個執行個體化對象。下面就分別介紹如何儲存字串和執行個體化的對象。
一,字串類型資料處理
1.儲存鍵/值對
View Code
1 //擷取IsolatedStorageSettings
2 var settings = IsolatedStorageSettings.ApplicationSettings;
3 //定義需要儲存的鍵/值對
4 String key = "username";
5 String value = "宇之樂";
6 //判斷是否已經存在,存在修改,不存在添加
7 if (settings.Contains(key))
8 {
9 settings[key] = value;
10 }
11 else
12 {
13 settings.Add(key, value);
14 }
15 //儲存資訊,如果不調用的話,重啟後資料會丟失
16 settings.Save();
2.擷取資料
View Code
String key = "username";
String value = String.Empty;
try
{
//從IsolatedStorageSettings擷取字串資訊
var settings = IsolatedStorageSettings.ApplicationSettings;
bool isFind = settings.TryGetValue(key, out value);
if (!isFind)
{
value = String.Empty;
}
}
catch (System.Exception ex)
{
//未找到
}
二,執行個體化對象的處理
1.定義對象
View Code
[DataContract]
public class UserInfo
{
[DataMember]
public String UserName { get; set; }
[DataMember]
public String BlogAddress { get; set; }
}
注意:此處必須使用[DataContract](資料契約)和[DataMember],只有這樣序列化的對象的執行個體才可以儲存到IsolatedStorageSettings中。使用[DataContract]需要添加引用System.Runtime.Serialization。
2.儲存執行個體化對象
View Code
//擷取IsolatedStorageSettings
var settings = IsolatedStorageSettings.ApplicationSettings;
//定義需要儲存的key
String key = "username";
//執行個體化對象
UserInfo user = new UserInfo();
user.UserName = "宇之樂";
user.BlogAddress = "http://www.cnblogs.com/huizhang212/";
try
{
//判斷是否已經存在,存在修改,不存在添加
if (settings.Contains(key))
{
settings[key] = user;
}
else
{
settings.Add(key, user);
}
//儲存資訊,如果不調用的話,重啟後資料會丟失
settings.Save();
}
catch (System.Exception ex)
{
//儲存失敗,如果儲存的是未執行個體化的對象,會報異常
}
3.擷取儲存的執行個體化對象
View Code
String key = "username";
UserInfo user = null;
//從IsolatedStorageSettings擷取字串資訊
var settings = IsolatedStorageSettings.ApplicationSettings;
if (settings.Contains(key))
{
user = settings[key] as UserInfo;
}