App.config:用户与应用程序范围
我在我的项目中添加了App.config文件。 我从项目>属性>设置面板创build了两个设置 –
我注意到,当我添加设置时,我可以将范围定义为User
或Application
。 –
- 用户
- 应用
如果我将User
设置定义为userSettings
部分,
如果我将设置定义为Application
它将转到applicationSettings
部分
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;
User
和Application
范围有什么区别,在什么情况下应该在这两者之间进行select?
基本上,应用程序设置不能在运行程序和用户设置期间更改。 这些用户设置应该被保存下来,以便用户在接下来运行应用程序时能够获得熟悉的体验。
编辑:举例来说,你可能用不同的模块编写你的应用程序,并且需要确保你的主模块使用了你的安全模块的正确版本。 为此,您可以设置应用程序范围设置,例如:
SecurityModuleVersion string Application v1.21
稍后当您重构安全模块时, 您可以在部署时将值更改为v1.22,以确保正确执行安全
另一方面,如果你的应用程序有不同的颜色变化,字体变化等“皮肤”,那么你可以设置一个用户设置如下:
ApplicationSkin string User DefaultSkin
然后,当米歇尔改变她喜欢的皮肤时,应用程序会记住她的设置。 现在的属性可能如下所示:
ApplicationSkin string User HelloKittySkin
应用程序范围设置是只读的,只能在devise时或通过在应用程序会话之间更改.exe.config文件进行更改。 但是,用户范围设置可以在运行时写入,就像更改任何属性值一样。 新值在应用程序会话持续时间内保持不变。 通过调用Settings.Save方法,您可以在应用程序会话之间持续更改用户设置。
msdn上的源代码: 在C#中使用设置