将所有程序设置XML集中到一个单独XML配置文件的方法:使用appSettings元素的configSource元素

在.NET程序中,程序的配置文件默认都会放在程序根目录下的web.config(网站程序)或App.config(控制台等程序),在该配置文件中可以定义若干程序配置信息。

在此以网站程序为例,首先将下面内容写入web.config文件的根节点<configuration>下:

<appSettings>
  <add key="DataSource" value="xxx"/>
  <add key="URL" value="yyy"/>
</appSettings>

这样,在程序里就可以读取这些配置进行处理:

txtInfo.Text += ConfigurationManager.AppSettings["DataSource"];  //txtInfo是一个ASP.NET页面上的展示TextBox控件
txtInfo.Text += ConfigurationManager.AppSettings["URL"];

现在的问题是,如果程序配置项太多,appSettings元素太长且不便单独配置,想将所有程序设置XML集中到一个单独XML配置文件,

如果直接定义一个App_Data\appSettings.config文件,在里面定义appSettings元素,这样是不行的,C#代码是访问不到的。

那应该怎么操作的?

刚找到了解决方法:

1.在web.config下的根节点<configuration>加一句:

<appSettings configSource="App_Data\appSettings.config"/>

2.在ASP.NET网站新建目录App_Data及其下的文件appSettings.config,并且右键appSettings.config属性,选择然后可写入:

<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="DataSource" value="xxx"/>
<add key="URL" value="yyy"/>
</appSettings>

3.执行测试方法:

txtInfo.Text += ConfigurationManager.AppSettings["DataSource"];  //txtInfo是一个ASP.NET页面上的展示TextBox控件
txtInfo.Text += ConfigurationManager.AppSettings["URL"];

就可以看到结果了。

另外,如果出错提示找不到文件或者找不到节点appSettings,可能是因为没有把appSettings.config文件属性进行设置:复制到输出目录----始终复制

如图:

将所有程序设置XML集中到一个单独XML配置文件的方法:使用appSettings元素的configSource元素

一般网站不许这样设置,如果是控制台程序就得这么设置.

上一篇:WCF自定义地址路由映射(不用svc文件)


下一篇:Daily Scrumming* 2015.12.13(Day 5)