App.config 两种版本读取方式(appSettings 和 applicationSettings 的区别)

本文详细介绍了App.config中的appSettings和applicationSettings的区别,包括两种版本的使用方式、XML内容示例以及读取方式,并对比了各自的优势。

转自:http://www.ithao123.cn/content-8222094.html

摘要:App.config 两种版本读与体式格局( appSettings 战 applicationSettings 的差别 ) ApplicationSettings是.net 2.0以后涌现的,appSettings是.net 1.1的体式格局. 实在.net 2.0以后两个皆能够用 体式格局一:.net2.0 之前appSe] 


App.config 两种版本读取方式(appSettings 和 applicationSettings 的区别)
 
ApplicationSettings是.net 2.0之后出现的,appSettings是.net 1.1的方式. 其实.net 2.0之后两个都可以用
 
方式一:.net2.0 之前 appSettings
 xml 内容:
  <connectionStrings>
    <add name=" connString " connectionString="Data Source=127.0.0.1;Initial Catalog=test;User ID=sa;Password=123" />
  </connectionStrings>
  <appSettings>
    <add key=" logpath " value="d:test.txt"/>
  </appSettings>
 
读取方式:
string sConnectionString = ConfigurationManager.ConnectionStrings["connString"].ConnectionString;
string sPath = ConfigurationManager.AppSettings["logpath"]
 
VS2005中用第一种读取方式,需要手动添加app.config内容(appSettings字段),
而且使用ConfigurationManager时要加上 using System.Configuration; 同时添加System.Configuration.dll引用
还有一点就是应用程序目录必须存在MyProject.exe.config文件,否则exe会打不开!
 
方式二: .net2.0之后 applicationSettings
 xml 内容(参数直接在 Project->  Properties ->Settings界面设置,更方便):
    <connectionStrings>
    <add name="MyProject.Properties.Settings.connstring" connectionString="Data Source=127.0.0.1;Initial Catalog=test;Persist Security Info=True;User ID=sa;Password=123"
      providerName="System.Data.SqlClient" />
    </connectionStrings>
    <applicationSettings>
        <MyProject .Properties.Settings>
            <setting name="WebSrv" serializeAs="String">
                <value>http://localhost/MyWebSrv/Service.asmx</value>
            </setting>
        </ MyProject .Properties.Settings>
    </applicationSettings>
    <userSettings>
        <MyProject .Properties.Settings>
            <setting name=" LogPath" serializeAs="String">
                <value>D:\log.txt</value>
            </setting>
        </ MyProject .Properties.Settings>
    </userSettings>
 
读取方式:
 string sConnectionString = MyProject .Properties.Settings.Default. connString;
 string sUrl =  MyProject .Properties.Settings.Default. WebSrv ;    
 string sPat  = MyProject .Properties.Settings.Default.LogPath;  
 
使用第二种方式的优点是直接可以在Settings界面中编辑内容,还可以构建和测试connectionString字段, 参数配置更直观.
应用程序目录不必一定要有MyProject.exe.config文件,如果没有该文件,读出的值是编译时设置的值,否则读取该文件中的值.
<think>好的,我现在需要帮用户解决如何在C#中操作App.config文件的appSettings节点,包括增加、删除、清空修改配置项的问题。用户希望得到示例代码,并且根据提供的引用内容,我需要整合相关信息,确保回答准确。 首先,我应该回忆一下C#中处理配置文件的基本方法。记得System.Configuration命名空间提供了ConfigurationManager类,可以用来访问配置文件。用户提到的引用[2][3]提到了使用ConfigurationManager.OpenExeConfiguration来打开配置文件,以及用AddJsonFile来读取JSON配置,但用户的问题是关于App.configappSettings,所以主要参考引用[2][4]。 接下来,需要分四个部分处理:增加、删除、清空、修改配置项。 对于增加配置项,需要使用config.AppSettings.Settings.Add方法,传入键值。保存后要RefreshSection,确保更改生效,如引用[2]中的删除操作后的处理步骤。 删除配置项的话,用Settings.Remove方法,如引用[2]中的示例,删除create_man项。需要注意调用Remove之后要SaveRefreshSection。 清空配置项可能需要遍历所有键并逐个删除,或者直接操作配置文件。不过直接清空可能更高效,但示例中可能更安全地使用循环删除。 修改配置项,如果键存在,可以先Remove再Add,或者直接修改其Value属性。根据引用[4],修改时可能需要处理配置文件路径,但用户的问题可能不需要涉及注释处理,所以直接使用ConfigurationManager的方法即可。 然后要检查示例代码是否正确。例如,添加配置项时,是否正确打开配置文件,保存后刷新。删除时是否正确调用Remove。修改时是否先检查存在性。 另外,用户提供的引用[4]提到修改本地配置文件不删除注释的方法,但用户的问题可能不需要保留注释,所以可能在示例中不涉及,但如果有需要的话可能需要更复杂的处理,比如直接操作XML。不过根据用户的问题,使用标准方法即可。 最后,需要确保代码示例中的步骤正确:打开配置、执行操作、保存、刷新。同时提醒用户可能需要引用System.Configuration程序集,并处理权限问题。 现在把这些步骤整理成代码示例,分四个部分,每个操作一个示例,并给出注意事项,比如需要管理员权限,配置文件位置等。同时根据引用内容,正确标注引用来源,比如引用[2][4]中的相关部分。</think>在C#中操作App.config文件的appSettings节点时,可通过`System.Configuration`命名空间实现。以下是具体操作示例及说明: ### 一、增加配置项 ```csharp Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); config.AppSettings.Settings.Add("newKey", "newValue"); //添加新配置项 config.Save(ConfigurationSaveMode.Modified); //保存修改 ConfigurationManager.RefreshSection("appSettings"); //刷新配置节[^2] ``` ### 二、删除配置项 ```csharp Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); config.AppSettings.Settings.Remove("oldKey"); //移除指定键 config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings");[^2] ``` ### 三、清空配置项 ```csharp Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); config.AppSettings.Settings.Clear(); //清空所有配置项 config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); ``` ### 四、修改配置项 ```csharp Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); if(config.AppSettings.Settings["targetKey"] != null) { config.AppSettings.Settings["targetKey"].Value = "newValue"; //直接修改值 config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings");[^2] } ``` ### 关键注意事项 1. 需要添加`System.Configuration`程序集引用 2. 配置文件路径可通过`Application.ExecutablePath + ".config"`获取[^4] 3. 修改后需调用`RefreshSection`使新配置立即生效 4. 对系统级配置文件操作可能需要管理员权限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值