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

Vas*_*leF 6 settings save permanent windows-runtime

我正在研究一款实际上也是游戏的WinRT应用程序.我需要在某种文件或某种程度上保存不同的信息,如音频设置或播放器统计信息.如果它是一个文件,只需写入设置或......?我有一个想法,但我认为太简陋了......获得这个的最佳方法是什么?

任何帮助或建议都非常感谢!

Iri*_*son 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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)