I have added App.config file in my project. I have created two settings from Project > Properties > Settings panel -

enter image description here

我注意到,当我添加一个设置时,我可以将范围定义为用户应用程序-

  1. 用户
  2. 应用程序

If I define setting as 用户 it goes touserSettings section,
if I define setting as 应用程序 it goes to applicationSettings section

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-

Code

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

用户应用程序范围之间有什么区别?在什么情况下应该在这两者之间进行 Select ?

推荐答案

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

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

SecurityModuleVersion  string     Application      v1.21

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

另一方面,如果您的应用程序有不同的"皮肤",包括 colored颜色 更改、字体更改等,那么您可以设置如下用户设置:

ApplicationSkin        string     User              DefaultSkin

然后,当Michelle换上她喜欢的皮肤时,应用程序会记住her个设置.这些属性现在可能看起来像:

ApplicationSkin        string     User              HelloKittySkin

.net相关问答推荐

Docker失败文件找不到

如何使用.NET8MapIdentityApi设置OpenApi操作ID

使用React路由加载器获取数据不能正常工作

在平板电脑上运行我的 Angular 13 和 .Net Api 项目时,它不会向 api 输入请求

.NET Core 中的微服务

使用 SSH.NET 查找具有特定文件名的最新 SFTP 文件

为什么 Any() 不适用于 c# null 对象

每 X 秒执行一次指定函数

在 C# DllImport 中使用 32 位或 64 位 dll

泛型方法是如何、何时、何地具体化的?

File.ReadAllLines() 和 File.ReadAllText() 有什么区别?

如何明智地使用 StringBuilder?

.NET 中工作线程和 I/O 线程的简单描述

使用只读属性或方法?

您可以在 C# 代码中捕获本机异常吗?

VB.NET 与 C# 整数除法

如何制作通用类型转换函数

绑定到不在列表中的值的可编辑组合框

为什么 !0 是 Microsoft 中间语言 (MSIL) 中的一种类型?

名称 <...> 不存在于命名空间 clr-namespace <...>