在web.config或者app.config中增加自定义配置节

ASP.NET 配置文件解析
本文介绍如何使用 ASP.NET 读取 web.config 和外部配置文件中的数据,并展示了通过不同方式解析配置信息的方法,包括简单键值对、复杂类型及自定义实体。

简单键值对


web.config


1
2
3
4
5
6
7
<configSections>
                                                                                                                             
   <section name="users" type="System.Configuration.NameValueSectionHandler"/>
                                                                                                                              
                                                                                                                              
 </configSections>
 <users  configSource="users.config"></users>

users.config

1
2
3
4
<users>
  <add key="beijing" value="123"></add>
  <add key="tianjin" value="123"></add>
</users>


c#

1
2
NameValueCollection users = System.Configuration.ConfigurationManager.GetSection("users"as NameValueCollection;
            Response.Write(users.Keys[0]+"</br>"+users.Keys[1]);


复杂类型

web.config


1
2
3
4
5
6
7
<configSections>
                                                                          
<section name="roles" type="EBuy.Chapter3.NTier.WebUI.RolesConfig, EBuy.Chapter3.NTier.WebUI"/>
                                                                          
</configSections>
<roles configSource="roles.config">
  </roles>

roles.config

1
2
3
4
<roles>
  <add username="beijing" password="123"></add>
  <add username="tianjin" password="123"></add>
</roles>


RolesCofig.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace EBuy.Chapter3.NTier.WebUI
{
    public class RolesConfig : System.Configuration.IConfigurationSectionHandler
    {
        public object Create(object parent, object configContext, System.Xml.XmlNode section)
        {
            return section;
        }
    }
}



c#

1
2
XmlNode roles= System.Configuration.ConfigurationManager.GetSection("roles"as XmlNode;
           Response.Write(roles.ChildNodes [0].Attributes["username"].InnerText);

还可以将配置节定义为一个实体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace EBuy.Chapter3.NTier.WebUI
{
    public class RolesConfig : System.Configuration.IConfigurationSectionHandler
    {
        public object Create(object parent, object configContext, System.Xml.XmlNode section)
        {
            var list=new List<Role>();
            for(int i=0;i<section.ChildNodes.Count;i++)
            {
                list.Add(new Role (){
                    Username =section.ChildNodes[i].Attributes["username"].InnerText ,
                    Password =section.ChildNodes[i].Attributes["password"].InnerText });
            }
            return list;
        }
    }
    public class Role
    {
        public string Username { getset; }
        public string Password{get;set;}
    }
}
1
2
var roles = System.Configuration.ConfigurationManager.GetSection("roles"as List<EBuy.Chapter3.NTier.WebUI.Role >;
          Response.Write(roles.First ().Username);




本文转自 virusswb 51CTO博客,原文链接:http://blog.51cto.com/virusswb/1374335,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值