我正在开发一款WinRT应用程序,其实也是一款游戏。我需要将不同的信息(如音频设置或播放器统计信息)保存在某种文件或某种方式中。如果它是一个文件,只需在...中写入设置...?我有一个想法,但我认为太简陋了...获得这个最好的方法是什么?保持WinRT应用程序设置的最佳方法?
任何帮助或建议,非常感谢!
我正在开发一款WinRT应用程序,其实也是一款游戏。我需要将不同的信息(如音频设置或播放器统计信息)保存在某种文件或某种方式中。如果它是一个文件,只需在...中写入设置...?我有一个想法,但我认为太简陋了...获得这个最好的方法是什么?保持WinRT应用程序设置的最佳方法?
任何帮助或建议,非常感谢!
这里有一些方法可以将数据保存在WinRT应用程序中,名称中的设置方法可能就是您要查找的内容! - 也可以添加其他内容 - 如果您想要也可以序列化数据。这是工作代码 - 但不要忘了添加错误处理等,这是一个简单的演示代码:)
至于设置,你可以简单的设置保存为键和值,并为更复杂的设置,您可以使用容器。我在这里提供了两个例子=)
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;
}
}
}
的MSDN有an article on using app settings in Windows Store apps。
的Windows.UI.ApplicationSettings
命名空间包含所有你需要的类。
提供允许开发人员定义显示在Windows外壳设置窗格中的应用程序设置的类。设置窗格为用户访问应用程序设置提供了一个一致的位置。
基本上这些类允许您存储应用程序设置并将它们挂接到所有应用程序设置的标准位置。你的用户不需要学习任何新东西,设置将在预期的地方。
非常感谢,但我的问题是现在:我不能将所有设置保存在文件中?只需在应用启动时从文件中读取文本行,或者在保存时将文件重写为文本?这是一个很好的做法吗? – VasileF
容器将为您提供这种可能性 - 只需更新要更改的键的值。 –
,如果有大量的数据,你也可以使用一个小型的数据库,如SQLite的,有一个.NET包装它, - 只要确保你使用异步执行。我仍然建议根据您告诉我们的内容使用复合/容器设置。 –