自定义配置节处理实现个性化web.config

web

通过System.Configuration中的ConfigurationSettings类的AppSettings属性,可以很方便访问web.config配置文件中appSettings节点的数据。对于web程序利用这个配置文件存放一些只读的程序信息,比如程序名称,作者信息,数据库连接字符串等将是十分方便有用。如:

<!--Sample.aspx-->
private void Page_Load(object sender, System.EventArgs e)
{
this.tbName = ConfigurationSettings.AppSettings[“AppName“];
}

<!--web.config-->
<configuration>
<appSettings>
<add key="AppName" value="MyApplication" />
</appSettings>
... ...

对于ConfigurationSettings类有个方法GetConfig(string sectionName)可以访问任何配置元素,对于以上例子,可如此使用:

<!--Sample.aspx-->
private void Page_Load(object sender, System.EventArgs e)
{
object settings = ConfigurationSettings.GetConfig(“appSettings“);
NameValueCollection nvc = settings as NameValueCollection;
if (nvc != null)
{
string val = (string)nvc[“AppName“];
this.tbName = val;
}
}

可见GetConfig()方法返回了一个配置处理的对象,转换成NameValueCollection的实例后,可以访问到该section内的内容了。其实对于配置文件检索有背后的处理程序实现,同时我们可以看到在web.config,或machine.config中看到对于处理程序的声明,如:

<!--web.config-->
<configuration>
<configSections>
<section name="mySection"
type="Chagel.Configration.Settings, Configuration" />
</configSections>
<mySection>
<AppName> MyApplication</AppName>
</mySection>
... ...

以上声明了一个mySection元素,并在configSections中声明了该配置的处理程序类名为Chagel.Configration.Settings,Configuration为程序集名称。接下来我们可以通过一个实现System.Configuration.IConfigurationSectionHandler接口的类来处理该配置元素,如:

<!--Settings.cs-->
using Chagel.Configration.Data;
namespace Chagel.Configration
{
public class Settings:IConfigurationSectionHandler
{ //实现该接口的Create方法
public object Create(object parent, object input, XmlNode node)
{
Data data = new Data();

foreach(XmlNode xn in node.ChildNodes)
{
switch(xn.Name)
{
case("appName"):
data.AppName = xn.InnerText;
break;
case("appVer"):
data.AppVer = xn.InnerText;
break;
... ...
}//switch end

}//foreach end

return data;

}//method end
}
}

IConfigurationSectionHandler 接口只有一种方法,每当发现注册到处理程序的配置节时,都会在节处理程序上调用 Create 方法,我们实现的类返回一个Data类的实例,该类是一个专门的数据集,代码如下:

<!--Data.cs-->
namespace Chagel.Configration.Data
{
public class Data
{
public Data()
{
}
public string AppName;//程序名称
public string AppVer;//程序版本
public string AppAuthor;//程序作者
... ...
}
}

至此,现在可以读取配置元素值了,如:

<!--Sample1.aspx-->
private void Page_Load(object sender, System.EventArgs e)
{
Data data;
data = ConfigurationSettings.GetConfig("mySection") as Data;
this.tbName.Text = data.AppName;
}

到此我们通过实现一个类支持 IConfigurationSectionHandler 接口来对自定义节进行处理,完成对自定义节的读取。当然我们仍可以直接声明系统的处理程序(System.Configuration.NameValueFileSectionHandler)重用与appSettings一样的类。

时间: 2024-09-30 02:37:05

自定义配置节处理实现个性化web.config的相关文章

web.config文件自定义配置节的使用方法的一个简单例子

web web.config文件自定义配置节的使用方法的一个简单例子用来演示的程序名为MyApp,Namespace也是MyApp 1.编辑web.config文件 添加以下内容,声明一个Section <configSections>    <section name="AppConfig" type="MyApp.AppConfig, MyApp" /> </configSections>   声明了一个叫AppConfig的

创建自定义配置节

在.Net 应用程序中,我们经常看到VS为我们生成的项目工程中都会含有App.config或者Web.config这样的文件.这个文件就是我们所说的应用程序配置文件.在这个文件里面记述着一些与我们的应用程序相关的信息,如:数据库连接,认证模式等.我们在程序中可以利用 ConfigurationManager的ConnectionStrings属性方便的获取配置文件中的数据库连接字符串信息. 可是有时候,我们需要对它进行一些扩展,加入一些自定义的元素,而不是仅仅使用默认的配置.例如,我们可能需要在

使用 ConfigurationSection 创建自定义配置节

我们可以通过用自己的 XML 配置元素来扩展标准的 ASP.NET 配置设置集,要完成这一功能,我们必须实现继承System.Configuration.ConfigurationSection 类来实现自定义配置节,在1.0中当然也可以通过IconfigurationSectionHandler 接口创建自定义配置节!这里我们主要学一下通过ConfigurationSection类来实现简单的配置处理程序.       先看一下在web.config文件中的配置情况,在这里有两个元素,第一个m

iis7 5-在iis7.5经典模式下发布带自定义handler类的网站,web.config配置问题

问题描述 在iis7.5经典模式下发布带自定义handler类的网站,web.config配置问题 之前在iis6.0下发布的网站,现在搬迁到iis7.5下面,发布后发现无法进入自定义的控制类里面

在ASP.NET中创建自定义配置节(翻译)

asp.net|创建|asp.net 一.介绍 ASP.NET Web应用程序用一种内置的方法访问简单的"键/值"配置数据.在Web.config文件中,你可以创建节来存储简单的"键/值"对.例如,新建一个ASP.NET项目,在Web.config文件中添加如下的标记作为元素的子标记: 该节包含了用两个标记定义的"键/值"对,你可以通过Page对象内置的ConfigurationSettings属性获得它们的值.作为开始,在你的项目中新建一个名为

web.config配置节点大全详解

web.config配置节点大全详解 web.config 文件查找规则:        (1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结 点名称,如果存在返回结果并停止查找.        (2)如果当前页面所在目录下不存在web.config文件或者web.config文件中不存在 该结点名,则查找它的上级目录,直到网站的根目录.        (3)如果网站根目录下不存在web.config文件或者web.config文件中不存在该节点 名则在%wind

使用Advanced Installer制作IIS安装包(一:配置IIS和Web.config)

原文:使用Advanced Installer制作IIS安装包(一:配置IIS和Web.config) 前言:大过年的,写篇文章不容易,还是给自己点个赞~~年前找了下.net安装包的制作方法,发现Visual Studio自带的制作工具使用起来非常麻烦,需要单独下载安装包,并且什么激活认证等等屁事相当麻烦,最坑爹的是它的自定义dialog使用起来有很多的局限性,所以找了很久,终于找到了Advanced Installer.摸索了两天,算是掌握了一些基本的方法,在此做个记录.相信对于需要使用的园友

基于.net mvc的校友录五 web.config对的配置以及filter实现的权限控制

web.config配置文件 此文件是整个系统的配置中心,它告诉iis服务器本网站需要哪些运行时环境,需要哪些环境,将要进行哪些操作,开发人员也会将一个常量性的数据放在此配置中,以备系统全局调用.此文件内容丰富,对于一些普适性的项目,不作说明,只针对本系统的配置作相应说明. web.config配置文件 web.config是xml格式的文件,它是一种结构性文档,可以通过结点对数据进行遍历.第一行<?xml version="1.0" encoding="utf-8&q

DotText源码学习——从配置文件Web.config入手(一)

概述 ASP.NET配置数据存储在名为 Machine.config/Web.config的XML文本文件中,Web.config文件可以出现在ASP.NET应用程序的多个目录中.由于 这些文件将应用程序配置设置与应用程序代码分开,可以方便地设置与应用程序关联.正是因为配置文件中存储着关于整个应用程序的设置,当我读一个陌生项目的 源码时,经常把它作为入口. 我将从以下几点分析ASP.NET配置文件: ASP.NET配置文件的层次结构 Machine.config和根Web.config配置文件