C# Mono SharedPreferences|LocalSettings alternative

本文关键字:LocalSettings alternative SharedPreferences Mono | 更新日期: 2023-09-27 18:11:36

我正在写一个应用程序在Mono,这是一个非手机应用程序,我们只是用它来针对多个平台内部。

我希望坚持简单的应用程序设置,我是SharedPreferencesAndroidLocalSettingsWindows平台上使用的方法的大粉丝;有人知道在Mono生态系统中有类似的方法吗?

C# Mono SharedPreferences|LocalSettings alternative

Mono支持System.Configuration.ApplicationSettingsBase(我最喜欢的)。你也可以使用.ini文件,有一个注册表包装等…

设置的子类:

class MySetting : System.Configuration.ApplicationSettingsBase
{
    [UserScopedSettingAttribute]
    [DefaultSettingValueAttribute("Overflow")]
    public String Stack
    {
        get { return (String)this["Stack"]; }
        set { this["Stack"] = value; }
    }
}

用法:

class MainClass
{
    public static void Main(string[] args)
    {
        var settings = new MySetting();
        Console.WriteLine(settings.Stack); // Default value
        settings.Stack = "Not Overflowing"; // Assign new value
        settings.Save(); // Persist the setting's changes
        var settings2 = new MySetting(); // ReLoad persisted values
        Console.WriteLine(settings2.Stack);
        var settings3 = new MySetting(); // Reset values back to their defaults
        settings3.Reset();
        Console.WriteLine(settings3.Stack);
    }
}

macOS输出:

StackOverflow
Not Overflowing
StackOverflow

裁判:https://github.com/mono/mono/blob/aa77a6ddccd9751a7f83fb066add7baabfb84062/mcs/class/System/System.Configuration/ApplicationSettingsBase.cs