The*_*ETJ 2 application-data uwp
我正在开发 UWP 应用,我需要将数据存储为设置。
我使用ApplicationData.Current.LocalSettings并将简单数据和复合数据的混合存储在其中。当我的应用程序用户想要结束其会话时,我希望删除之前存储的所有数据。我使用了ApplicationData.Current.ClearAsync(),ApplicationData.Current.LocalSettings.Values.Clear()它似乎有效,但是当我检查存储这些设置的 settings.dat 文件时,我看到数据仍然存在,只有它们与密钥的连接被清除并使它们不可用。
问题是从版本到版本,在某些情况下我需要更改某些密钥甚至停止使用其中一些密钥,并且我描述的这个问题与以前的密钥相关的数据将保留在 settings.dat 中,文件大小会随着时间的推移而增长.
我需要一个解决方案来让我完全清除 settings.dat 内容(或至少是我在其中编写的内容)。
您没有清除此处的本地设置。ApplicationDataContainer.Values 返回一个 PropertySet,而 Clear 方法对应于 Collection 类。所以它只清除你得到的集合,而不是设置。您必须使用 Remove 方法根据键单独删除设置或使用 ApplicationDataContainer 来存储您的设置。您可以一次性删除容器中存储的所有设置。通过其键单独删除设置:
ApplicationData.Current.LocalSettings.Values.Remove("key");
Run Code Online (Sandbox Code Playgroud)
创建应用程序数据容器:
var LocalSettingsContainer = ApplicationData.Current.LocalSettings;
var container = LocalSettingsContainer.CreateContainer("ContainerName", ApplicationDataCreateDisposition.Always);
Run Code Online (Sandbox Code Playgroud)
将设置添加到容器:
container.Values[Key] = Value;
Run Code Online (Sandbox Code Playgroud)
删除一个容器:
LocalSettingsContainer.DeleteContainer("containerName");
Run Code Online (Sandbox Code Playgroud)
PS:请注意,如果您在容器中有任何子容器,您将要删除指定容器中的设置以及子容器将被删除。可以在文档中找到有关 localsettings 的更多信息。
编辑:您可以通过将 ApplicationDataContainer.Values 转换为具有 Keys 属性的 ApplicationDataContainerSettings 来获取ApplicationDataContainer中的键,您可以通过该属性单独删除设置。
var containerSettings = (ApplicationDataContainerSettings)ApplicationData.Current.LocalSettings.Values;
var keys = containerSettings.Keys;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1738 次 |
| 最近记录: |