Windows Phone 独立存储之IsolatedStorageSettings

  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;
}

 

posted @ 2012-03-06 22:48  宇之乐  阅读(2644)  评论(0编辑  收藏  举报