Jim Greenleaf
Jim Greenleaf

Reputation: 376

Nesting Configuration Elements in web.config

I'm learning how to use System.Configuration in .NET and would like to know if there is a way to infinitely nest configuration settings in my web.config file.

Let's say I have two types of objects - a Page, and a PageGroup. A Page represents a real page on my site, and a PageGroup represents a collection of Pages and (possibly) other PageGroups.

My web.config file might contain something like:

<pagegroup name="outer_group">
    <page name="page1" url="page1.htm" />
    <page name="page2" url="page2.htm" />
    <pagegroup name="middle_group">
        <page name="page3" url="page3.htm" />
        <pagegroup name="inner_group">
            ...and so on...
        </pagegroup>
    </pagegroup>
</pagegroup>

My limited understanding of Configuration classes leads me to believe that this is not what they were designed for - but I'm hoping that I'm wrong.

Is it possible to use ConfigurationElementCollections and ConfigurationElements (or any other applicable ConfigurationClasses) in this manner?

Upvotes: 0

Views: 1517

Answers (1)

marc_s
marc_s

Reputation: 754488

You basically have two different types of items to deal with:

  • a ConfigurationSectionGroup is a container for other elements, most notably configuration sections (or other configuration section groups). The section group itself doesn't have any configuration properties or attributes - it's just a container for configuration sections

  • the ConfigurationSection is the item that can contain attributes, elements, collections etc. with the actual configuration settings that you want to store

As far as I know, you can nest configuration section groups as deep as you need to, but you cannot nest anything inside a configuration section.

For a great intro and lots of background info, check out Jon Rista's three-part series on .NET 2.0 configuration up on CodeProject.

Highly recommended, well written and extremely helpful!

Upvotes: 4

Related Questions