gpt4 book ai didi

c# - Windows Phone 8,应用程序设置未保留

转载 作者:太空狗 更新时间:2023-10-29 21:50:42 25 4
gpt4 key购买 nike

我的 Windows Phone 8 C# 应用程序出现以下奇怪行为。

我正在保存一个设置:

private void SaveProperty<T>(T property, string propertyName)
{
if (IsolatedStorageSettings.ApplicationSettings.Contains(propertyName))
IsolatedStorageSettings.ApplicationSettings[propertyName] = property;
else
IsolatedStorageSettings.ApplicationSettings.Add(propertyName, property);

IsolatedStorageSettings.ApplicationSettings.Save();
}

当应用程序运行时,我可以读取存储在 IsolatedStorageSettings.ApplicationSettings 中的所有设置。 .

但是当我重新打开我的应用程序(从应用程序列表中打开它)时,IsolatedStorageSettings.ApplicationSettings - 字典包含零 ( 0 ) 个键和值。

我错过了什么吗?

我使用 ISETool.exe 为我的应用程序的 IsolatedStorage 拍摄快照(感谢 chepene)。我看到了这种行为:当我编写设置时(这意味着在 SaveProperty<T>() 函数完成后),应用程序仍在运行,我将设置保存在 _ApplicationSettings 中.这与我可以从 IsolatedStorageSettings.ApplicationSettings 中读到的观察结果一致。当应用程序运行时。_ApplicationSettings - 文件在墓碑删除或未运行时也存在(当我可以通过按住手机的后退按钮使用后退按钮关闭应用程序时访问它)。

但是当应用再次打开时(通过应用列表),_ApplicationSettings -文件不见了...

我还看到,当我将文件写入 IsolatedStorage 时与:

SharedStorageAccessManager.CopySharedFileAsync(
Windows.Storage.ApplicationData.Current.LocalFolder, fileName+"orig",
Windows.Storage.NameCollisionOption.ReplaceExisting, fileID);

然后当我不读取这个文件时,下次打开应用程序时它就消失了。

顺便说一句,为避免混淆:我不会每次打开该应用程序时都重新安装它。

如果您需要更多信息,请询问。

感谢任何帮助。

最佳答案

使用 AppSettings,我在 WP7/7.5 上看到了类似的情况,但只有当我的属性值的类型是序列化程序不知道的类时才会发生这种情况。

你确定没有异常(exception)吗:

  • 保存期间
  • 在应用程序退出期间(因为应用程序可能会在此时转储设置)
  • 在 App 启动后首次加载设置期间?

请注意,这并不一定意味着应用程序崩溃。我的意思是,任何异常,那些内部沉默或用户处理的。请检查 VisualStudio 的输出面板以获取“第一次机会异常”日志。如果出现任何 I/O 或安全或序列化异常,则在那里进行调查。如果我没记错的话,甚至还有一整套隔离存储异常,可以很容易地从调试/异常菜单中拦截。

但是,我遇到的未知或不可序列化类型的问题根本无法解释为什么额外的非应用程序设置文件会消失。

另一个想法:也许一些额外的工具会为您执行类似“干净部署”的操作?我记不太清楚了,但我认为 VisualStudio 的部署周期很简单:

  • 重建
  • 从设备中删除/卸载旧应用程序——因此可能清除隔离存储
  • 在设备上安装新应用

所以,也许这就是原因? 嗯..事后思考并再次阅读你的问题,你已经说过从应用程序列表运行应用程序,所以事实并非如此。然后一定要检查 firstchance 异常!

关于c# - Windows Phone 8,应用程序设置未保留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17085510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com