在.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.config。ASP.NET 应用程序中的配置文件继承该 URL 路径中的配置文件的设置。例如,假设有 URL http://localhost/WebApp/admin,其中http://localhost/WebApp是 Web 应用程序,与该应用程序关联的配置文件位于http://localhost/WebApp。而位于子目录 /admin 中的 ASP.NET 页,既使用应用程序级的配置文件的设置,又使用位于 /admin 中的配置文件的设置。
更多内容请看电脑配置手册、服务器配置专栏、.NET移动与嵌入式技术专题,或进入讨论组讨论。
我的第一个想法是:能否把这些配置文件合并为一个文件?翻阅了一些资料,找到了一个方法,可能能实现这个想法。
假设当前解决方案包括以下几个项目:控制台程序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.config。ASP.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,这种方法就无能为力了,它没有支持运行库的配置文件。到这里,理想状况下,可以做到使用至多两个文件来配置整个解决方案了。
- 用Photoshop给漂亮的烫发MM抠图
- Photoshop透明婚纱抠图大法
- Photoshop:让MM做个“变色龙”
- 用Photoshop来制作一款精美的宝宝照片墙
- Photoshop绝色美女通道抠图法
- 用Photoshop教你打造绚丽光芒效果
巧巧读书:http://www.qqread.com/aspdotnet/d232595.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 电脑配置手册 (8178篇文章)
- 服务器配置专栏 (10787篇文章)
- .NET移动与嵌入式技术 (5880篇文章)
- .NET开发手册 (5585篇文章)
- ASP.NET教程 (8343篇文章)
- .NET基础介绍 (706篇文章)
- .NET应用研究 (487篇文章)
- ASP.NET应用篇 (2591篇文章)
- asp.net 实现购物车详细代码 (14312次浏览)
- ASP.NET2.0轻松搞定统计图表 (651次浏览)
- 使用ASP.NET AJAX实现幻灯片效果 (604次浏览)
- ASP.NET如何存取 SQLServer数据库图片 (592次浏览)
- 如何制作Asp.Net界面模板 (582次浏览)
- ASP.NET中实现DataGrid数据排序 (580次浏览)
- 设计ASP.NET新闻管理系统 (424次浏览)
- ASP.NET 2.0加密Web.config 配置文件 (381次浏览)
- 网络编程ASP.NET的几个技巧 (374次浏览)
- ASP.NET的Request对象的属性介绍 (324次浏览)



