C# app.config 与 Settings.settings

绪论:
最早的时候想查找一种方法,首先实现程序的配置文件,将一些参数可以在配置文件中查看和修改,修改完的值会影响程序运行。其次实现一些参数等用户不可修改,但是开发者方便编辑查看。最后了解到app.config
与 Settings.settings。故此,在这里记录。

1、Settings.settings

不论是WPF工程还是Winform工程,在程序集中都有Properties,如下图。Properties里面有三个文件。这里介绍Settings.settings。

  • AssemblyInfo 里面就是程序集相关信息,如版本号等。

  • Reources就是资源管理,可以添加字符串和图片等。可以实现统一管理一些字符串等内容,用户不可修改,但是开发者方便编辑查看和使用。尤其是图片可以先添加进去,然后再使用,就不必出现使用绝对路径了。
    在这里插入图片描述
    在这里插入图片描述

  • Settings.settings文件中定义配置字段。把作用范围定义为:User则运行时可更改,Applicatiion则运行时不可更改。可以使用数据网格视图,很方便;

  • 在这里插入图片描述

name: 相当于变量名,
Type: 相当于变量的数据类型,
Scope有两种:1.User运行时可更改,2.Applicatiion则运行时不可更改. value 为设定值。这句话的意思是:当设置为Applicatiion的时候,在程序代码中修改该字段值无效,而不是使用程序的用户修改配置文件无效。不管是User还是Applicatiion使用程序的用户修改配置文件都是有效的。

当设置为User时:
程序读取配置的值:
text1.text =Properties.Settings.Default.FieldName;
修改配置值:
Properties.Settings.Default.FieldName = "server";
Properties.Settings.Default.Save();//使用Save方法保存更改

注意:当设置scope为User时,并且执行Properties.Settings.Default.Save();他的配置就放在 C:\Documents and Settings\LocalService\Local
Settings\Application Data\在这个目录下或子目录user.config 配置文件中。

还有一个特点:Settings.settings中的字段可以与界面上的textbox的text值绑定。

在这里插入图片描述

其实使用Settings.settings,首先在VS2019中查看字段方便,其次可以用户修改配置文件进行字段的值修改。那么程序生成发布后,用户如何设置Settings.settings中的值呢?
答案是:如下图,在xxx.exe.config中多出来一个userSettings配置项。

在这里插入图片描述
同时在程序集中,会发现如下图内容。
在这里插入图片描述

2、app.config

如法如下:
对比上述 Settings.settings,发现对于配置而言,最终都作用在exe.config中,但是里面一个是 <appSettings></appSettings>另一个是<userSettings></userSettings>

**引用头**
using System.Configuration; 
**读取**
string strPath = ConfigurationManager.AppSettings["Path"]; 
**写入**
Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
cfa.AppSettings.Settings["NAME"].Value = "WANGLICHAO"; 
cfa.Save(); 
**文件**
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Path" value="D:\"/>
    <add key="NAME" value="123"/>
  </appSettings>
</configuration>

猜你喜欢

转载自blog.csdn.net/weixin_41487423/article/details/122887190