Вложение элементов конфигурации в web.config

StackOverflow https://stackoverflow.com/questions/2344692

  •  23-09-2019
  •  | 
  •  

Вопрос

Я учусь использовать 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, состоящей из трех частей.

Очень рекомендую, хорошо написано и очень полезно!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top