Вложение элементов конфигурации в web.config
Вопрос
Я учусь использовать System.Configuration в .NET и хотел бы знать, есть ли способ бесконечно вкладывать параметры конфигурации в мой файл web.config.
Допустим, у меня есть два типа объектов — страница и группа страниц.Страница представляет собой реальную страницу на моем сайте, а группа страниц представляет собой коллекцию страниц и (возможно) других групп страниц.
Мой файл web.config может содержать что-то вроде:
<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>
Мое ограниченное понимание классов конфигурации заставляет меня полагать, что они созданы не для этого, но я надеюсь, что ошибаюсь.
Можно ли использовать ConfigurationElementCollections и ConfigurationElements (или любые другие применимые ConfigurationClasses) таким образом?
Решение
По сути, вам придется иметь дело с двумя разными типами предметов:
а
ConfigurationSectionGroup
является контейнером для других элементов, в первую очередь разделов конфигурации (или других групп разделов конфигурации).Сама группа разделов не имеет каких-либо свойств или атрибутов конфигурации — это просто контейнер для разделов конфигурации.тот
ConfigurationSection
это элемент, который может содержать атрибуты, элементы, коллекции и т. д.с фактическими настройками конфигурации, которые вы хотите сохранить
Насколько я знаю, вы можете вкладывать группы разделов конфигурации настолько глубоко, насколько вам нужно, но вы не можете ничего вкладывать в раздел конфигурации.
Отличное введение и дополнительную информацию можно найти в серии статей Джона Ристы о настройке .NET 2.0 на сайте CodeProject, состоящей из трех частей.
- Разгадка тайн конфигурации .NET 2.0
- Расшифровка тайн конфигурации .NET 2.0
- Раскрываем тайны конфигурации .NET 2.0
Очень рекомендую, хорошо написано и очень полезно!