WinRT应用程序保持设置的最佳方法是什么?

6
我正在开发一个WinRT应用程序,它实际上也是一款游戏。我需要将不同的信息(例如音频设置或玩家统计数据)保存在某种文件或其他地方。如果使用文件,只需将设置写入其中?我有一个想法,但我认为它太简单了...如何最好地实现这一点?
非常感谢您提供任何帮助或建议!
2个回答

17

以下是在WinRT应用程序中保存数据的几种方法,名字带有Settings的方法可能是您正在寻找的!- 我们也添加了其他方法 - 如果需要,您还可以序列化数据。这是可工作的代码- 但不要忘记添加错误处理等。这只是一个简单的演示代码 :)

至于设置,您可以将简单的设置保存为键和值,对于更复杂的设置,可以使用容器。我在这里提供了两个示例 =)

 public class StorageExamples
{
    public async Task<string> ReadTextFileAsync(string path)
    {
        var folder = ApplicationData.Current.LocalFolder;
        var file = await folder.GetFileAsync(path);
        return await FileIO.ReadTextAsync(file);
    }

    public async void WriteTotextFileAsync(string fileName, string contents)
    {
        var folder = ApplicationData.Current.LocalFolder;
        var file = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
        await FileIO.WriteTextAsync(file, contents);
    }

    public void SaveSettings(string key, string contents)
    {
        ApplicationData.Current.LocalSettings.Values[key] = contents;
    }

    public string LoadSettings(string key)
    {
        var settings = ApplicationData.Current.LocalSettings;
        return settings.Values[key].ToString();
    }
    public void SaveSettingsInContainer(string user, string key, string contents)
    {
        var localSetting = ApplicationData.Current.LocalSettings;

        localSetting.CreateContainer(user, ApplicationDataCreateDisposition.Always);

        if (localSetting.Containers.ContainsKey(user))
        {
            localSetting.Containers[user].Values[key] = contents;
        }
    }
}

非常感谢,但我的问题现在是:我不能以某种方式将所有设置保存在文件中吗?只需在应用程序启动时从文件中读取文本行,或者在保存时将该文件重写为文本即可?这是一个好的做法吗? - VasileF
容器将为您提供这种可能性-只需更新您想要更改的键的值。 - Iris Classon
如果有大量数据,您也可以使用小型数据库,例如SQLite,它有一个.Net封装器,只需确保使用异步实现。根据您告诉我们的情况,我仍然建议使用组合/容器设置。 - Iris Classon

3

MSDN有一篇文章,介绍在Windows Store应用中使用应用程序设置

Windows.UI.ApplicationSettings 命名空间包含所有必要的类。

提供了允许开发人员定义出现在 Windows shell 设置面板中的应用程序设置的类。设置面板为用户提供了一个一致的位置来访问应用程序设置。

基本上,这些类可以让您存储应用程序设置,并将它们连接到所有应用程序设置的标准位置。您的用户不必学习任何新知识,设置将出现在预期的位置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接