2009-10-13 2 views
18

Недавно я написал довольно большую группу настраиваемых конфигураций. Мне интересно, если это возможно, чтобы переместить эту конфигурацию в отдельный файл с помощью следующих действий:Перемещение настраиваемой группы конфигурации в отдельный файл

<configuration> 
    <configSections> 
     <sectionGroup name="MyCustomGroup"> 
      <section name="MyCustomSection"/> 
     </sectionGroup> 
    </configSections> 
    <MyCustomGroup file="alt.config" /> 
</configuration> 

Это что-то подобное тому, что вы можете сделать с атрибутом файла для AppSettings. Я понимаю, что, скорее всего, необходимо создать атрибут ConfigurationPropertyAttribute для моего обработчика пользовательских разделов, однако мне не удалось найти какой-либо пример или направление в этом отношении.

ответ

27

Насколько я знаю, вы не экстернализовать весь SectionGroup (т.е. MyCustomGroup) с помощью атрибута configSource, но вы должны справиться с этим на уровне раздела (т.е. MyCustomSection)

<configuration> 
    <configSections> 
     <sectionGroup name="MyCustomGroup"> 
       <section name="MyCustomSection"/> 
     </sectionGroup> 
    </configSections> 
    <MyCustomGroup>  
     <MyCustomSection configSource="externalfile.config" /> 
    </MyCustomGroup> 
</configuration> 

Внешний файл externalfile.config затем будет содержать ваши фактические настройки конфигурации, начиная напрямую с вашего собственного тега раздела (без указания <?xml....?> или <configuration> или что-то в этом роде):

<MyCustomSection> 
    ... your settings here...... 
</MyCustomSection> 

Marc

+1

Работает как очарование. –

+1

Вы правы. Группы разделов не могут быть экстернализированы в целом, но могут быть разделены. –

+0

@marc_s - отлично, я не понимал, что это был такой старый вопрос. Я был просто гуглингом и нашел это лучшим результатом! – Liath

Смежные вопросы