Перемещение пользовательской группы конфигурации в отдельный файл - PullRequest
18 голосов
/ 14 октября 2009

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

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

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

1 Ответ

32 голосов
/ 14 октября 2009

Насколько я знаю, вы не можете экстернализировать всю 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>

Марк

...