Есть ли способ для файла App.config ссылаться на другой полный файл конфигурации? (.СЕТЬ)

Обновление: этот вопрос, включая название, был перефразирован, подробнее см. историю

Я знаю, что следующий файл App.config содержит внешний файл:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings configSource="appSettings.config"/>
  <system.net>
    <connectionManagement>
      <add address="*" maxconnection="50"/>
    </connectionManagement>
  </system.net>
</configuration>

Но я не знаю, как переместить system.net во второй файл. На самом деле я не пробовал, но я почти уверен, что это не сработает, и я хочу знать, есть ли способ для App.config включить другой файл App.config по ссылке.

Ответ 1

Я думаю, что вы просто удаляете атрибуты configSource, а затем включаете все содержимое элементов <appSettings> и <connectionStrings>

Ответ 2

Мне удалось заставить это работать с помощью configSource

<configSections>
    <section name="Sites"
             type="Wap.Common.Configuration.SiteHandler, Wap.Common" />
</configSections>

<Sites configSource="Sites.Prod.config" />

а затем во внешнем файле конфигурации он должен иметь тег? xml

<?xml version="1.0" encoding="utf-8" ?>
<Sites>
...
</Sites>

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

Ответ 3

Нельзя размещать секцию system.net внутри appSettings.config. Стандартная практика - одна конфигурация node в дополнительном файле конфигурации. Я даже не уверен, возможно ли разделить один и тот же файл с разными узлами.

Вы должны создать другой файл с именем, возможно, system.net.config, и поместить туда все тело, полное

  <system.net>
    <connectionManagement>
      <add address="*" maxconnection="50"/>
    </connectionManagement>
  </system.net>

Затем в App.config вы обновите system.net, чтобы быть

  <system.net>
    <connectionManagement configSource="system.net.connectionManagement.config"/>
  </system.net>