Как включить файл конфигурации для .Net - PullRequest
13 голосов
/ 03 сентября 2010

Есть ли способ, чтобы основной файл конфигурации .net app.config / web.config включал другой файл конфигурации?Мне нужно хранить вещи в отдельных файлах, но связывать их вместе.

Вот пример того, что я хочу включить:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
      <section name="LocationSearch.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <applicationSettings>
    <LocationSearch.Properties.Settings>
        <setting name="MapQuestApiKey" serializeAs="String">
        <value>some value here...</value>
        </setting>
        <setting name="MapQuestClientCode" serializeAs="String">
        <value>another value here...</value>
        </setting>
    </LocationSearch.Properties.Settings>
  </applicationSettings>
</configuration>

Ответы [ 3 ]

10 голосов
/ 03 сентября 2010

Да, с атрибутом «файл»

<appSettings file="configFiles/otherConfigFile.config">

MSDN info

Некоторая важная информация из статьи MSDN об использовании атрибута 'file':

Содержимое отдельного файла объединяется с разделом appSettings в файле Web.config. Эта функциональность ограничена атрибутом appSettings.

Примечание: В .NET Framework версии 2.0 теперь вы можете включать параметры конфигурации в отдельный файл для всех элементов конфигурации, которые поддерживают атрибут configSource. Однако, когда вы используете атрибут configSource, вы должны переместить весь раздел в отдельный файл, потому что нет слияния настроек элемента.

9 голосов
/ 03 сентября 2010

Да, вы можете включить отдельные файлы в основной .config, используя атрибут configSource, например:

<securityConfiguration configSource="SomeOtherConfigFile.config" />

Внешние файлы конфигурации, которые вы включаете таким образом, должны находиться в том же каталоге (или подпапке) основного файла .config.

Свойство SectionInformation.ConfigSource

1 голос
/ 03 сентября 2010

Да, я делаю это для правил перезаписи URL.

Итак, в моем файле web.config я делаю это:

<urlrewritingnet configSource="UrlRewriting.config" />
...