1.读 语句:
String str = ConfigurationManager.AppSettings["DemoKey"];
2.写 语句:
Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
cfa.AppSettings.Settings["DemoKey"].Value = "DemoValue";
cfa.Save();
配置文件内容格式:(app.config文件)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<add key="DemoKey" value="*" />
</configuration>
System.Configuration.ConfigurationSettings.AppSettings["Key"];
注意:但是现在FrameWork2.0已经明确表示此属性已经过时。并建议改为ConfigurationManager或
WebConfigurationManager。并且AppSettings属性是只读的,并不支持修改属性值.
但是要想调用ConfigurationManager必须要先在工程里添加system.configuration.dll程序集的引用。
(在解决方案管理器中右键点击工程名称,在右键菜单中选择添加引用,.net 标签页下即可找到)
添加引用后可以用 String str = ConfigurationManager.AppSettings["Key"]来获取对应的值了。
更新配置文件:
1.2 引入system.configuration程序集后对应程序更新str1 = ConfigurationManager.AppSettings["DemoKey"];
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings.Clear();
config.AppSettings.Settings.Add("DemoKey", $"{i.ToString()}");
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
str2 = ConfigurationManager.AppSettings["DemoKey"];
1.3 app.config 文件及对应代码部分app.config文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<appSettings>
<add key="RecipeName1" value="recipeName1" ></add>
<add key="RecipeName2" value="recipeName2" ></add>
<add key="RecipeName3" value="recipeName3" ></add>
<add key="RecipeName4" value="recipeName4" ></add>
<add key="RecipeName5" value="recipeName5" ></add>
<add key="RecipeName6" value="recipeName6" ></add>
</appSettings>
</configuration>
代码部分:
private void Button_Click_1(object sender, RoutedEventArgs e)
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings.Remove($"RecipeName2");
config.AppSettings.Settings.Add($"RecipeName2", $"456456");
config.AppSettings.Settings.Add($"RecipeName2", $"456456");
config.AppSettings.Settings.Remove($"RecipeName3");
config.AppSettings.Settings.Add($"RecipeName3", $"3333333");
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
string sh1 = ConfigurationManager.AppSettings["RecipeName1"];
string sh2 = ConfigurationManager.AppSettings["RecipeName2"];
string sh3 = ConfigurationManager.AppSettings["RecipeName3"];
}