我做了一个小应用程序。当用户点击并关闭Applicaiton时,我有兴趣保存一些数据。
这是经典的应用程序甚至应用程序将被关闭。
private void Application_Closing
{
objSaveData = null;
}
...
public class objSaveData
{
~objSaveData
{
try
{
IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
}
catch
{
}
}
}
模拟器返回错误。我该如何解决这个问题?
答案 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
// {
// }
// }
}