现在的位置: 首页 > 综合 > 正文

Web.Config自定义类的读取

2013年06月30日 ⁄ 综合 ⁄ 共 1724字 ⁄ 字号 评论关闭

         在.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")。

   

   

抱歉!评论已关闭.