C# App.config 基于每个用户

C# App.config on a per-user basis

我正在编写的应用程序具有一些应用程序级别的配置,但也有一些应该在每个用户的基础上完成的配置。

我正在为 BrowserStack 编写配置部分以使用 App.config 文件(根据 msdn) which has let me define the important things that need to be stored, however, there are things that belong in a config file that don't belong in version control. In this particular instance browserstack.user and browserstack.key (which are retrieved from their documentation)属于单独的配置文件,不应将其签入。

c# 配置是否允许这种行为,或者我是否必须修改我的配置部分才能执行此操作? (包含在下面以供参考)

public class BrowserStackSettings : ConfigurationSection
{
    [ConfigurationProperty("hubUrl", DefaultValue = "http://hub-cloud.browserstack.com/wd/hub/", IsRequired = false)]
    public string HubUrl
    {
        get
        {
            return (string)this["hubUrl"];
        }
        set
        {
            this["hubUrl"] = value;
        }
    }

    [ConfigurationProperty("user", IsRequired = true)]
    public string User
    {
        get
        {
            return (string)this["user"];
        }
        set
        {
            this["user"] = value;
        }
    }

    [ConfigurationProperty("key", IsRequired = true)]
    public string Key
    {
        get
        {
            return (string)this["key"];
        }
        set
        {
            this["key"] = value;
        }
    }            
}

C# 有一个叫做 settings 的东西。一个设置的范围可以是"user"或"application"。应用程序设置无法轻易更改。它们存储在 Program Files 中应用程序的 .config 文件中。但是用户设置是可以改变的,当然每个用户都可以不同。这些设置存储在用户配置文件中某处的另一个 .config 文件中。

因此,应用程序应以某种方式允许用户更改这些设置,并保存它们只需调用 Properties.Settings.Default.Save();