- 热门文章:
- · 使用xmlhttp为网站增加股市行情查询功能
- · .Net Enterprise服务器可能太早冠上.Net名号了
- · 维护ASP的会话状态
- · 浅谈引用计数
- · 使你的窗体保留在桌面的最上面
- · 研究心得------->Seskin控件包中SeskinEdit汉字问题的解决办法
- · 建立三层结构的ASP应用程序
- · 研究心得------->CPU信息的获得,比较全面的
- · Sender 的??用:所有Edit共用一???^?V格式
- · override deal with window closing in database application
- · C++ 和 Delphi 的函数覆盖(Override)与重载(overload
- · 正确处理ASP动态网页中的容错机制
上一篇:为freetextbox1.6.5上传图片加上水印 >>
自定义配置节处理实现个性化web.config
<!--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一样的类。
下一篇:使用xmlhttp为网站增加股市行情查询功能 >>
相关文章:
- · 几例在ASP存储过程的使用方法
- · 实现让每句话的头一个字母都大写
- · 如何尽快释放掉Connection对象建立的连接?
- · Connection对象的应用
- · 利用ASP打造网站论坛DIY
- · Asp中代码与页面的分离
- · 一个ASP版的图片浏览管理器
- · 实现有管理功能的ASP留言板
- · 编译asp应用程序成为exe文件
- · 如何准确定时运行ASP文件
- · ASP整合的一个SQL语句类
- · Jmail发信的实例,模块化随时调用
- · ASP字数计算函数
- · 无刷新随时取得用户当前活动信息
- · ASP自定义函数,仿VBA中域函数DLookup
- · asp中对ip进行过滤限制函数
- · 让ASP程序运行于非Windows平台
- · ASP中实现文件上传方法的研究
- · asp国标转大五码
- · Global.asa文件用法大全
- · 微软建议的ASP性能优化28条守则
- · 在ASP中取得服务器网卡的MAC地址、DNS地址等网络信息
- · ASP中记录的分页
- · 下载网页中的所有资源
- · 函数方便制作管理界面
- · 无限级目录树+记忆节点状态
- · 利用C#在SQL Server2000存取图像 For Window
- · 通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
- · ASP模板类[实现一维循环和二维循环,可以从文件、数据库、变量取摸板]
- · 各种存储过程使用指南
- · 树型结构在ASP中的简单解决
- · 用ASPJPEG组件制作图片的缩略图和加水印
- · 用asp制作强大的搜索引擎(一)
- · VBscript和javascript的选择
- · 在ASP中使用SQL语句之2:用WHERE子句设置查询条件
- · 在线压缩WINRAR文件
- · 在线解压缩上传的WINRAR文件
- · 用javascript实现的日历
