使用ConfigurationManager类 读写配置文件app.config,以下为代码:
using System; using System.Configuration; static class Program { static void Main() { showConfig(); UpdateAppSettings(); showConfig(); Console.ReadKey(true); } private static void showConfig() { string = ConfigurationManager.AppSettings["Directory"]; Console.WriteLine("AppSetting配置节 Path key的value为:" + dir + " "); } /// <summary> /// UpdateAppSettings /// </summary> public static void UpdateAppSettings() { // Get the configuration file. Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); Console.WriteLine("config.FIlePath: " + config.FilePath + " "); config.AppSettings.Settings["Directory"].Value = "tset"; // Save the configuration file. config.AppSettings.SectionInformation.ForceSave = true; config.Save(ConfigurationSaveMode.Modified); // Force a reload of the changed section. ConfigurationManager.RefreshSection("appSettings"); }
using System; using System.Configuration; static class Program { static void Main() { showConfig(); UpdateAppSettings(); showConfig(); Console.ReadKey(true); } private static void showConfig() { string = ConfigurationManager.AppSettings["Directory"]; Console.WriteLine("AppSetting配置节 Path key的value为:" + dir + " "); } /// <summary> /// UpdateAppSettings /// </summary> public static void UpdateAppSettings() { // Get the configuration file. Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); Console.WriteLine("config.FIlePath: " + config.FilePath + " "); config.AppSettings.Settings["Directory"].Value = "tset"; // Save the configuration file. config.AppSettings.SectionInformation.ForceSave = true; config.Save(ConfigurationSaveMode.Modified); // Force a reload of the changed section. ConfigurationManager.RefreshSection("appSettings"); }
app.config内容:
view plaincopy to clipboardprint? <?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="Directory" value="C:Documents and Settings"/> </appSettings> </configuration> <?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="Directory" value="C:Documents and Settings"/> </appSettings> </configuration>
代码结果:app.config只能作为初始化的定义,工程生成后运行程序集名称.exe 修改生成后的 程序集名称.exe.Config文件
一开始调试时看到控制结果是想要的结果,但看app.config配置文件内容没变(vs2008 F5调试模式下是修改 程序集名称.vshost.exe.config配置文件)还以为是代码有问题,网上搜,也有人碰过到此现像,原来是自己没有理解到MSDN的说明。(还是有文化差异啊)如:
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); Console.WriteLine("config.FIlePath: " + config.FilePath + " ");
查看config.filePath值,即了解明白了。
4.0的类库: http://msdn.microsoft.com/en-us/library/ms134265(v=VS.100).aspx
注意:此类是.net2.0后新增。
必须要先在工程里添加system.configuration.dll程序集的引用。
(在解决方案管理器中右键点击工程名称,在右键菜单中选择添加引用,.net->组件名称->下即可找到)
添加引用后可以使用System.Configuration空间下的ConfigurationManager类.
引用资源: