C# app.config 与 Settings.settings
1、Settings.settings这个适用于不必寻找配置文件,只是在程序里面自己修改。比如做一个人机交互界面,通过这个来修改其中的值。而不是人工打开配置文件,然后进行修改。这个有利于记录一下变量的值,即使程序结束了,依然有效。同时,往往即使修改了也不一定有效。所以符合前门条件的再用这个。2、app.config这个适用于人工修改配置文件的时候,因为编译完会出现xxx.exe.config。直接
绪论:
最早的时候想查找一种方法,首先实现程序的配置文件,将一些参数可以在配置文件中查看和修改,修改完的值会影响程序运行。其次实现一些参数等用户不可修改,但是开发者方便编辑查看。最后了解到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>
更多推荐
所有评论(0)