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 Page开发者_如何转开发Group 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?
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 sectionsthe
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.
- Unraveling the mysteries of .NET 2.0 configuration
- Decoding the mysteries of .NET 2.0 configuration
- Cracking the mysteries of .NET 2.0 configuration
Highly recommended, well written and extremely helpful!
精彩评论