Ric*_*o-E 6 c# isolatedstorage windows-phone-8
我在Windows Phone 8,C#App中有以下奇怪的行为.
我正在保存一个设置:
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();
}
Run Code Online (Sandbox Code Playgroud)
当应用程序运行时,我可以读取我存储的所有设置IsolatedStorageSettings.ApplicationSettings.
但是当我重新打开我的应用程序(从应用程序列表中打开它)时,IsolatedStorageSettings.ApplicationSettings-Dictionary包含Zero(0)键和值.
我错过了什么吗?
我使用ISETool.exe拍摄我的应用程序的IsolatedStorage快照(感谢chepene).我看到了这种行为:当我编写设置(这意味着SaveProperty<T>()功能完成后),并且应用程序仍在运行时,我已将设置保存在_ApplicationSettings.这与我的观察结果一致,我可以从IsolatedStorageSettings.ApplicationSettings应用程序运行的时间开始阅读.在_ApplicationSettings将被墓碑或不运行时(我可以通过按住手机的背面,按钮,进入它的时候-file也存在和当应用程序被关闭与后退按钮).
但是当应用程序再次打开时(通过应用程序列表),- _ApplicationSettingsfile就消失了......
当我将文件写入IsolatedStoragewith 时,我也看到了:
SharedStorageAccessManager.CopySharedFileAsync(
Windows.Storage.ApplicationData.Current.LocalFolder, fileName+"orig",
Windows.Storage.NameCollisionOption.ReplaceExisting, fileID);
Run Code Online (Sandbox Code Playgroud)
当我不读这个文件时,下次打开应用程序时它就消失了.
顺便说一句,为避免混淆:每次打开它时我都不会重新安装应用程序.
如果您需要更多信息,请询问.
任何帮助赞赏.
感谢 quetzalcoatl,我找到了解决方案:我将所有文件存储在我的应用程序的根文件夹中。首先,我读取所有文件(通过 DataContractSerializer)并将其转换为我的模型。由于有时我的文件会损坏,因此我删除了每个抛出SerialzationException. 但是当我读取每个文件时,由于_ApplicationSettings不可转换为我的模型,所以我会_ApplicationSettings自动删除......所以我了解到 ApplicationSettings 只是根文件夹中的一个文件,我可以读取和删除它。所以精髓是永远不要写入根文件夹。
| 归档时间: |
|
| 查看次数: |
2088 次 |
| 最近记录: |