目的:
一些数据为了在项目打包好后也能方便的修改和调用,通常会把这些数据放到配置文件中,避免硬编码,修改配置文件内容更方便,而不用修改源代码。
使用:
在解决方案资源管理器中找到App.config文件,这个XML文件就是配置文件。在该XML文件中找到< appSettings >节点,按如下方法添加内容即可:
<appSettings> <add key="NAME" value="name" /> <add key="AGE" value=10 /> .....</appSettings>123456
一、读取配置文件:
string name = ConfigurationManager.AppSettings["NAME"].ToString();int age = int.Parse(ConfigurationManager.AppSettings["AGE"]);12
配置文件App.config就在项目的根路径,可以随时手动修改内容,也可以在项目中用代码动态修改。
二、写入配置文件:
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);config.AppSettings.Settings["NAME"].Value = "YourName";config.Save(ConfigurationSaveMode.Modified);ConfigurationManager.RefreshSection("appSettings"); // 重新加载新的配置文件 12345
重要参考:
http://stackoverflow.com/questions/4216809/configurationmanager-doesnt-save-settings
坑点:无法写入/保存配置文件?
在写入配置文件后,可以看到bin/Debug/YourProjectName.exe.config已经被修改了,但是关闭调试再运行一次时,会发现配置文件又被还原了,即之前的修改无效?!
原因在上面的参考链接中有提及:
就是说,代码中写入配置文件并运行Debug时,bin/Debug/YourProjectName.exe.config已经被修改。但是当你再运行一次Dubug时,这个bin/Debug/YourProjectName.exe.config的内容是从源码中获取的,因为源码中的App.config并没有被修改,所以bin/Debug/YourProjectName.exe.config又被覆盖为原来的数据。
即是说,按照之前的写入配置文件的代码是好用的,如果想测试这个写入配置文件的功能,可以运行bin/Debug/YourProjectName.exe来测试,而不是再VS中按F5运行源码来测试!