在.net中配置文件的数据可以通过ConfigurationManager访问相应的结点获取数据。最近看到一个GetSection方法,该方法可以读取结点内容并把内容转换成相应的类。这样,可以更方便的读取配置文件的结点。
第一步在Web.Config文件的<configuration>中定义结点,代码如下:
<groupSection name="groupSectionName">
<groups>
<add name="groupName" />
</groups>
</groupSection>
第二部创建相应的类,使类结构和我们定义的结点结构相同。
首先创建根类GroupSection,代码如下
public class GroupSection:ConfigurationSection
{
private ConfigurationProperty name;
private ConfigurationProperty groups;
public GroupSection()
{
}
[ConfigurationProperty("name", IsRequired = true)]
public string Name
{
get
{
return (string)base[name];
}
}
[ConfigurationProperty("groups", IsDefaultCollection = false, IsRequired = true)]
public GroupCollection Groups
{
get
{
return (GroupCollection)base[groups];
}
}
}
然后创建集合类GroupCollection,
public class GroupCollection: ConfigurationElementCollection
{
public GroupCollection()
{
}
public void Add(Group group)
{
base.BaseAdd(group);
}
}
最后创建结点类Group,
public class Group:ConfigurationElement
{
private ConfigurationProperty name
public Group(){}
[ConfigurationProperty("name", IsRequired = true)]
public string Name
{
get
{
return (string)base[name];
}
set
{
base[name] = value;
}
}
}
第三步注册你自定义的结点,在<configSections>节点中添加如下代码
<section name=“groupSection" type="YBE.Web.GroupSection,YBE.Web"/>
其中type说明了命名空间和对应的类。
最后,可以通过代码读取 GroupSection section = (GroupSection)ConfigurationManager.GetSection("groupSection")。