在我的UWP应用程序中存储设置的简单方法

在我的UWP应用程序中存储设置的简单方法,uwp,Uwp,我在UWP应用程序中使用MVVM作为解决方案。我有一门课叫“设置”。我想把它存储在光盘上。我该怎么做呢?如果您想存储与应用程序相关的设置,我建议您使用 这样,您就不需要显式地指定从文件读/写,从而使保存设置的工作非常简单。我所做的是使用JSON.NET将类序列化并反序列化为可存储的JSON字符串。这是我在解决方案中主要使用的静态类: public static class SettingsService {     private const string SETTINGS_FILENAME =

我在UWP应用程序中使用MVVM作为解决方案。我有一门课叫“设置”。我想把它存储在光盘上。我该怎么做呢?

如果您想存储与应用程序相关的设置,我建议您使用


这样,您就不需要显式地指定从文件读/写,从而使保存设置的工作非常简单。

我所做的是使用JSON.NET将类序列化并反序列化为可存储的JSON字符串。这是我在解决方案中主要使用的静态类:

public static class SettingsService
{
    private const string SETTINGS_FILENAME = "Settings.json";
    private static StorageFolder _settingsFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
    public async static Task<Settings> LoadSettings()
    {
        try
        {
            StorageFile sf = await _settingsFolder.GetFileAsync(SETTINGS_FILENAME);
            if (sf == null) return null;

            string content = await FileIO.ReadTextAsync(sf);
            return JsonConvert.DeserializeObject<Settings>(content);
        }
        catch
        { return null; }
    }

    public async static Task<bool> SaveSettings(Settings data)
    {
        try
        {
            StorageFile file = await _settingsFolder.CreateFileAsync(SETTINGS_FILENAME, CreationCollisionOption.ReplaceExisting);
            string content = JsonConvert.SerializeObject(data);
            await FileIO.WriteTextAsync(file, content);
            return true;
        }
        catch
        {
            return false;
        }
    }
}
要加载设置,请执行以下操作:

Settings settings = new Settings();
await SettingsService.SaveSettings(settings);
Settings settings = await SettingsService.LoadSettings();
请注意,并非所有类型都可以序列化。要排除的属性可以获得
[JsonIgnore]
属性。

最好的方法是使用ApplicationData.LocalSettings。请记住,这应该仅用于存储设置和用户首选项(而不是像文件或对象这样的用户数据)

要存储设置,请使用以下代码:

//获取对LocalSettings的引用:
var localSettings=ApplicationData.Current.localSettings;

localSettings.Values[“ServiceAddress”]=“您能否共享您想要存储的内容以及访问这些内容的频率?”?