WP8:在隔离存储中丢失数据或访问XML文件

时间:2014-07-18 22:07:44

标签: c# xml windows-phone-8 isolatedstorage

我正在创建一个存储用户创建列表的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块中执行什么来诊断我的问题。我想我正在失去对应用程序的隔离存储的访问权限,但我再次不确定如何继续。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

所以我最终找到了解决问题的方法。事实证明,我修改.xml文件的方式导致了一个无法再读取的错误。我通过使用修改后的数据完全覆盖我的文件而不是尝试更改现有数据来解决这个问题。