如何在c#中配置配置文件的不同部分

joh*_*nie 7 c# configuration-files

我想要做的是我的App.config文件我有一堆设置,我想做的事情将我的配置文件拆分成不同的文件.例如; 我的app.config文件文件有与电子邮件有关的设置,所以我想把这些设置拿出来存放在email.config文件中然后在我的app.config文件中使用configSource属性从email.config添加这些设置文件并将其添加到应用程序设置节点.这可能吗?

如果是这样,请告知如何实现上述结果.

非常感谢.

所以例如我有另一个名为app1.config的配置文件,并具有以下xml:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings >
    <add key="l" value="test"/>
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

然后从我的主app.config文件中引用app1.config文件,然后从代码中执行此操作以获取应用程序设置键的值:

 var x = ConfigurationManager.AppSettings["l"];
Run Code Online (Sandbox Code Playgroud)

Dir*_*irk 6

编辑以反映更改的问题和其他评论:

对于<appSettings>配置文件部分中定义的自定义设置,有一个file属性可以包含覆盖appSettings参数的文件路径:http: //www.codeproject.com/Articles/8818/Using-the-File-attribute -of最的appSettings-的Elemen

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <appSettings file="settings.config">
 </appSettings>
</configuration>`
Run Code Online (Sandbox Code Playgroud)

您确实也可以使用MSDN文档中指定的configSource属性:

http://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.configsource.aspx

ConfigSource属性表示为与SectionInformation对象关联的ConfigurationSection对象指定的configSource属性的值.

ConfigurationSection实现可以选择指定一个单独的文件,在该文件中定义该部分的配置设置.这可以通过多种方式使用:

使用包含文件可以为配置文件创建更加逻辑和模块化的结构.

文件访问安全性和权限可用于限制对配置设置部分的访问.

可以修改和重新加载在应用程序初始化期间未使用的包含文件中的设置,而无需重新启动应用程序.

以下示例显示如何在配置文件中使用此属性来指定在外部包含文件中定义pages部分:

<pages configSource="pages.config"/>

或者,如果你想存储在单独的文件中相同的部分信息,你可以随时恢复使用ConfigurationManager.Open ...配置功能和编程读取设置: http://msdn.microsoft.com/en-us /library/ms134262.aspx