关闭应用程序时Windows Phone GetUserStoreFor Application异常

时间:2014-01-12 22:16:40

标签: c# debugging windows-phone-8

我做了一个小应用程序。当用户点击并关闭Applicaiton时,我有兴趣保存一些数据。

这是经典的应用程序甚至应用程序将被关闭。

private void Application_Closing
{

   objSaveData = null;
}

...

public class objSaveData
{
    ~objSaveData
    {
      try
      { 
         IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
      }
      catch
      {
      }
    }
}

模拟器返回错误。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

来自Msdn可能是问题:

SecurityException

尚未授予足够的隔离存储权限。

IsolatedStorageException

无法初始化隔离的存储位置。 -OR -

无法确定调用方的应用程序标识,因为ActivationContext属性返回null。

- 或 - 无法确定应用程序域的权限。

答案 1 :(得分:1)

可能会导致异常,因为您没有显式处理商店尝试此代码:

  try
  { 
     using ( IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication() ){
     }
  }
  catch
  {
  }

如果没有正确关闭所有连接,IsolatedStorage有时会以非常不寻常的方式运行。

答案 2 :(得分:0)

这很简单:

private void Application_Closing
{
   //objSaveData = null;  // no use
   IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
   ... use it to save something
}

public class objSaveData
{
// destructors are called in an unpredictable fashion, usually too late. 
//    ~objSaveData
//    {
//      try
//      { 
//         IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
//      }
// empty catch blocks hide errors, don't do this
//      catch
//      {
//      }
//    }
}