DotNet 笔记

东方欲晓,莫道君起早。

Asp.net webconfig的appSettings分离到单独文件

如标题,如何把 asp.net webconfig的appSettings分离到单独文件 (必须是xxx.config文件),为什么要这么做?原因如下:

其一:如果我的配置节很多的话web.config会变得很大,不易管理和查找;
其二:程序运行后对web.config的改动会引起站点的重启,如果系统管理员修改配置文件也会引起系统站点重启,这样会影响系统的运行。

做法如下:

第一步,在web.config文件的appSettings节点内添加configSource属性,其值为"分离配置文件"的路径,并清空该节点内的子元素如下代码   [注意:configSouce中的文件路径只能为相对物理路径,也就是只能为反斜杠(\),不能用斜杠(/)。]:

  <appSettings configSource="BaseInfo.config">
    <!--
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    -->
  </appSettings>

第二部,建立对应的"分离文件"(本例中叫BaseInfo.config),注意路径.形如下代码:

<?xml version="1.0" encoding="utf-8"?>
<appSettings>
  <add key="see" value="我来自baseinfo文件!" />
</appSettings>

第三部,读取/写入,和未分开一样,该怎么处理怎么处理:

            Configuration cfg = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
            AppSettingsSection ass = cfg.AppSettings;
            //读取
            string settingValue = ass.Settings["see"].Value;
            //修改
            ass.Settings["see"].Value = "changed by application";
            cfg.Save();//写后,注意保存

 

Loading