Reputation: 376
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
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