一、C#项目中添加App.config配置文件
在控制台程序中,默认会有一个App.config配置文件,如果不小心删除掉,或者其他程序需要配置文件,可以通过添加得到。
添加步骤:右键项目名称,选择“添加”→“添加新建项”,在出现的“添加新项”对话框中,选择“添加应用程序配置文件”,默认的文件名称为“ App.config ”,单击“确定”。
二、配置文件格式
新建以后会得到一个App.config的文件,双击打开,默认如下面XML所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
可以对其添加节点,我们常用的是appSettings节点,appSettings里面在添加配置信息
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<appSettings>
<add key="MaxNum" value="10000"/>
</appSettings>
</configuration>
三、读写App.config配置文件
右键项目的"引用",选择"添加应用",点击弹窗的左上角"程序集",并在右边搜索框输入"System.Configuration",选择"System.Configuration"并确定。
在类中引用命名空间,using System.Configuration;
1.读取
string maxNumStr= ConfigurationManager.AppSettings["MaxNum"];
2.修改
Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
cfa.AppSettings.Settings["MaxNum"].Value = '20000';
cfa.Save(ConfigurationSaveMode.Modified);
注:不管在Debug和实际运行中,其实修改的并不是App.config文件,而是修改的xxx.exe.config文件。程序在实际运行中不会使用App.config文件中的值,都是使用的xxx.exe.config文件。
四、.config和.exe.config和.vshost.exe.config后缀文件的区别
.vshost.exe.config是程序运行时的配置文本(属于临时文件)
.exe.config是程序运行后会复制到vshost.exe.config
.config是在编辑代码时候存在的文件,当右键项目"生成"的时候会在bin\Debug文件下生成.exe.config和.vshost.exe.config文件,后两个文件的内容都是从.config复制而来的
上述说的修改配置文件,其实指的是修改.exe.config文件,而不是.config文件。
在程序运行中,.vshost.exe.config和.config两个文件可以不要,但是.exe.config必须要,因为程序读写的都是这个文件。
五、配置文件中的连接字符串connectionStrings
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup> <connectionStrings>
<!--第一种数据库连接字符串-->
<add name="名称1" connectionString="Data Source=服务器名;Initial Catalog=数据库名;User ID=用户;Password=密码" providerName="System.Data.SqlClient" />
<!--第二种数据库连接字符串-->
<add name="名称2" connectionString="server=服务器名;database=数据库名; Ueer ID=用户;Password=密码" providerName="System.Data.SqlClient" />
</connectionStrings> <appSettings>
<add key="MaxNum" value="10000"/>
</appSettings>
</configuration>
使用connectionStrings的好处:
第一:可将连接字符串加密,使用MS的一个加密工具即可
第二:可直接绑定的数据源控件,而不必写代码读出来再赋值给控件
第三:可方便的更换数据库平台,如更换Oracle数据库,就需要修改providerName
获取connectionStrings节点中的值:
string connectStr = ConfigurationManager.ConnectionStrings["名称"];