关于C# app.config的读写及配置汇总

本文介绍了如何在.NETFramework中使用ConfigurationManager进行配置文件的读写操作,包括通过AppSettings获取和设置值,以及如何更新和保存配置文件。特别指出,ConfigurationSettings.AppSettings已被弃用,应使用ConfigurationManager代替,并且强调了配置文件的修改过程和刷新机制。

1.1 基本读写方法及版本变更注意事项

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.Clear();


            //config.AppSettings.Settings.Remove($"RecipeName1");
            config.AppSettings.Settings.Remove($"RecipeName2");
            //config.AppSettings.Settings.Add($"RecipeName1", $"123123");
            //config.AppSettings.Settings.Add($"RecipeName1", $"123123");
            config.AppSettings.Settings.Add($"RecipeName2", $"456456");
            config.AppSettings.Settings.Add($"RecipeName2", $"456456");


            config.AppSettings.Settings.Remove($"RecipeName3");
            config.AppSettings.Settings.Add($"RecipeName3", $"3333333");

            //config.AppSettings.Settings.Add($"RecipeName{index + 1}", $"{recipeName}");
            config.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection("appSettings");//重新加载新的配置文件 

            string sh1 = ConfigurationManager.AppSettings["RecipeName1"];
            string sh2 = ConfigurationManager.AppSettings["RecipeName2"];
            string sh3 = ConfigurationManager.AppSettings["RecipeName3"];
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值