App.config:用户与应用程序范围是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (179)

我在我的项目中添加了App.config文件。我从Project> Properties> Settings面板创建了两个设置 -

我注意到,当我添加设置时,我可以将范围定义为UserApplication。-

  1. 用户
  2. 应用

App.config中

<configuration>

    <userSettings>
        <DemoApp.Properties.Settings>
            <setting name="MySetting1" serializeAs="String">
                <value>Value1</value>
            </setting>
        </DemoApp.Properties.Settings>
    </userSettings>

    <applicationSettings>
        <DemoApp.Properties.Settings>
            <setting name="MySetting2" serializeAs="String">
                <value>Value2</value>
            </setting>
        </DemoApp.Properties.Settings>
    </applicationSettings>

</configuration>

但是,这些设置可以以相同的方式访问.cs-

代码

string mySetting1 = DemoApp.Properties.Settings.Default.MySetting1;
string mySetting2 = DemoApp.Properties.Settings.Default.MySetting2;

在这两者之间应该选择什么样的区别?

提问于
用户回答回答于

基本上,应用程序设置不能在运行程序和用户设置期间更改。这些用户设置应该保存下来,以便用户在接下来运行应用程序时获得熟悉的体验。

编辑:例如,你可能会使用不同的模块编写应用程序,并且需要确保你的主模块正在使用安全模块的正确版本。为此,你可以设置应用程序范围设置,例如:

SecurityModuleVersion  string     Application      v1.21

稍后当你重构安全模块时,可能会在部署时将该值更改为v1.22以确保正在实施正确的安全性

另一方面,如果你的应用程序有不同的颜色变化,字体变化等'皮肤',那么你可以设置一个用户设置如下:

ApplicationSkin        string     User              DefaultSkin

然后,当改变喜欢的皮肤时,应用程序会记住设置。这些属性现在可能如下所示:

ApplicationSkin        string     User              HelloKittySkin
用户回答回答于

应用程序范围设置是只读的,只能在设计时或在应用程序会话之间更改.exe.config文件进行更改。但是,用户范围设置可以在运行时写入,就像更改任何属性值一样。新值在应用程序会话期间持续存在。通过调用Settings.Save方法,可以在应用程序会话之间持续更改用户设置。

msdn上的源代码:在C#中使用设置

用户设置通常用于保持用户偏好。应用程序设置通常用于诸如API密钥等项目

所属标签

可能回答问题的人

  • 嗨喽你好

    7 粉丝480 提问8 回答
  • uncle_light

    5 粉丝518 提问7 回答
  • Richel

    4 粉丝0 提问6 回答
  • 人生的旅途

    10 粉丝484 提问6 回答

扫码关注云+社区

领取腾讯云代金券