简单键值对
web.config
<configSections>
<section name="users" type="System.Configuration.NameValueSectionHandler"/>
</configSections>
<users configSource="users.config"></users>
users.config
<users>
<add key="beijing" value="123"></add>
<add key="tianjin" value="123"></add>
</users>
c#
NameValueCollection users = System.Configuration.ConfigurationManager.GetSection("users") as NameValueCollection;
Response.Write(users.Keys[0]+"</br>"+users.Keys[1]);
复杂类型
web.config
<configSections>
<section name="roles" type="EBuy.Chapter3.NTier.WebUI.RolesConfig, EBuy.Chapter3.NTier.WebUI"/>
</configSections>
<roles configSource="roles.config">
</roles>
roles.config
<roles>
<add username="beijing" password="123"></add>
<add username="tianjin" password="123"></add>
</roles>
RolesCofig.cs
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#
XmlNode roles= System.Configuration.ConfigurationManager.GetSection("roles") as XmlNode;
Response.Write(roles.ChildNodes [0].Attributes["username"].InnerText);
还可以将配置节定义为一个实体
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 { get; set; }
public string Password{get;set;}
}
}
var roles = System.Configuration.ConfigurationManager.GetSection("roles") as List<EBuy.Chapter3.NTier.WebUI.Role >;
Response.Write(roles.First ().Username);
Ctrl+Enter 发布
发布
取消