首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >App.config:用户与应用程序范围

App.config:用户与应用程序范围
EN

Stack Overflow用户
提问于 2012-10-24 18:00:12
回答 2查看 51.3K关注 0票数 96

我已经在我的项目中添加了App.config文件。我已经在项目>属性>设置面板中创建了两个设置-

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

  1. User
  2. Application

如果我将setting定义为User,它将转到userSettings部分,

如果我将setting定义为Application,它将转到applicationSettings部分

App.config

代码语言:javascript
复制
<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以相同的方式访问这些设置-

代码

代码语言:javascript
复制
string mySetting1 = DemoApp.Properties.Settings.Default.MySetting1;
string mySetting2 = DemoApp.Properties.Settings.Default.MySetting2;

UserApplication作用域之间的区别是什么?在什么情况下应该在这两者之间进行选择?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-24 18:05:54

基本上,应用程序设置不能在程序运行期间更改,而用户设置可以更改。然后应保存这些用户设置,以便用户在下一次运行应用程序时获得熟悉的体验。

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

代码语言:javascript
复制
SecurityModuleVersion  string     Application      v1.21

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

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

代码语言:javascript
复制
ApplicationSkin        string     User              DefaultSkin

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

代码语言:javascript
复制
ApplicationSkin        string     User              HelloKittySkin
票数 78
EN

Stack Overflow用户

发布于 2012-10-24 18:03:53

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

来源:Using Settings in C#

用户设置通常用于持久化用户首选项(例如,应用程序通知首选项等)。应用程序设置通常用于API密钥等项。

正如@kmote所指出的,当用户设置在运行时被修改和持久化(通过settings.Save())时,它们将被写入用户配置文件存储(通常是Windows7和更高版本中的C:\Users**Username\AppData\Local**AppName )中的文件夹。要以编程方式确定文件的位置,请参阅this post

票数 71
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13046907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档