WP8:丢失数据或访问隔离存储中的XML文件
本文关键字:存储 XML 文件 隔离 访问 数据 WP8 | 更新日期: 2023-09-27 18:13:29
我正在创建一个WP8购物清单应用程序,它存储用户创建的列表(在我的代码中,每个购物清单被定义为我定义的ListObj)。我想通过.xml文件保存用户创建的列表。只要我继续添加这个ListObj列表,我似乎没有问题。但是,当我想从列表中删除ListObj时,我开始遇到麻烦。当我重新打开我的应用程序后,我从ListObj的列表中删除了一些东西,并试图在启动时加载我的列表,我输入这个try/catch块:
try
{
using (IsolatedStorageFile appStorage =
IsolatedStorageFile.GetUserStoreForApplication())
{
if (appStorage.FileExists("rootList.xml"))
{
using (IsolatedStorageFileStream isStream =
appStorage.OpenFile("rootList.xml",
FileMode.Open, FileAccess.Read))
{
XmlSerializer serializer = new XmlSerializer(typeof(List<ListObj>));
rootList = (List<ListObj>)serializer.Deserialize(isStream);
}
}
else
{
rootList = new List<ListObj>();
Debug.WriteLine("rootList not found.");
}
}
}
catch
{
///Uhhh....
}
然而,我的程序执行catch语句,其中显然没有发生任何事情。我不确定在这个catch块中执行什么来诊断我的问题。我想我失去了访问应用程序的隔离存储,但再次,我不确定如何进行。什么好主意吗?
所以我最终找到了解决问题的方法。事实证明,我修改.xml文件的方式导致无法再读取该文件的错误。我解决这个问题的方法是用修改后的数据完全覆盖我的文件,而不是试图改变现有的数据。