设为首页
加入收藏
站内地图
旧版入口
当前位置:首页 > 站长学院 > 网络编程 > ASP.NET

关于ASP.NET的配置文件的分析(一)

作者:佚名 出处:网络转载 时间:06-17 点击:

内容载入中...
欢迎向教程中国提供原创教程 教程中国         在.NET中,我们可以为项目添加相应的配置文件,在其中定义我们需要的自定义信息,这样开发人员可以更改设置而不必重新编译应用程序,还可以避免把这些内容硬编码在代码中,尤其是在WebForm项目中更为常见。但是随着解决方案中项目数量的增加,有个问题会随之出现:配置文件过多,以致配置过程繁琐,且很容易出错,这个问题该如何解决?
       
我的第一个想法是:能否把这些配置文件合并为一个文件?翻阅了一些资料,找到了一个方法,可能能实现这个想法。
       
假设当前解决方案包括以下几个项目:控制台程序ConsoleApp, Windows窗口应用程序WinApp, Web应用程序WebApp, Web Service项目WebService, 类库ClassLib
       
而对于ClassLib之外的项目,它们都可以有自己的配置文件,其名称和位置取决于应用程序的宿主,可以是下列情况之一:
       
(1)可执行文件承载的应用程序:
        
由可执行文件宿主承载的应用程序的配置文件与该应用程序位于同一目录。配置文件的名称是带有 .config 扩展名的该应用程序的名称。例如,名为 WinApp.exe 的应用程序可以与名为WinApp.exe.config 的配置文件关联。
       
但是默认情况下系统不会给我们这个文件。可以这样做:先建立一个app.config文件。
       
假设内容为:
       
<?XML version="1.0" encoding="utf-8" ?>
         
<configuration>
           
< appSettings >
             
<add key="key1" value="WinValue1"/>               
             
<add key="key2" value="WinValue2"/>
           
</appSettings>
         
</configuration>
       
然后选择,添加现有项,将该文件加入到该项目,编译后就可以得到我们想要的文件了,要修改这个配置文件,我们只需要修改app.config!
       
(2)ASP.NET 承载的应用程序:
       
ASP.NET 配置文件为web.configASP.NET 应用程序中的配置文件继承该 URL 路径中的配置文件的设置。例如,假设有 URL http://localhost/WebApp/admin,其中http://localhost/WebApp Web 应用程序,与该应用程序关联的配置文件位于http://localhost/WebApp。而位于子目录 /admin 中的 ASP.NET 页,既使用应用程序级的配置文件的设置,又使用位于 /admin 中的配置文件的设置。

        可以看到这些配置文件都有一个相同的节点:<appSettings>。它有一个属性为file.可以这样写:
        <appSettings file="..\common.config">
        
</appSettings>
        
该属性指定包含自定义应用程序配置设置的外部文件的相对路径。如果找不到指定的文件,运行库会忽略该属性。如果找到相同的key值,那么它会覆盖掉主配置文件的value。
       
注意:用 file 属性指定的配置文件必须将 <appSettings>(而非 <configuration>)作为根节点。以下为一个正确的代码:
       
<?XML version="1.0" encoding="utf-8" ?>
        
<appSettings>         
         
<add key="key2" value="CommonValue2"/>
       
</appSettings>
       
这样就可以使得所有的配置文件指向同一个外部文件了,也就合并为一个配置文件了。
        然后
可以用System.Configuration.ConfigurationSettings.AppSettings["keyName"]来读取其值。

         但对于项目ClassLib,这种方法就无能为力了,它没有支持运行库的配置文件。到这里,理想状况下,可以做到使用至多两个文件来配置整个解决方案了。

收藏本文:
】【打印页面】【推荐给朋友】【关闭窗口

站长学院

推荐信息