C#Mono SharedPreferences | LocalSettings替代方案

时间:2016-10-04 23:57:55

标签: c# mono

我正在 Mono 中编写应用程序,它是一个非手机应用程序,我们只是用它来内部定位多个平台。

我希望坚持简单的应用程序设置,并且非常喜欢 Android 中的SharedPreferences Windows 上的LocalSettings使用的方法平台;有没有人知道 Mono 生态系统中可用的类似方法?

1 个答案:

答案 0 :(得分:1)

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