Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there any way for an App.config file to reference another full config file? (.NET)

Update: this question, including the title, was rephrased, see history for details

I know that the following App.config includes a external file:

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

But I don't know how to move the system.net to the second file. Actually I haven't tried it, but I am almost certain that it will not work, and I want to know if there is an way for an App.config to include another App.config file by reference.

like image 555
Jader Dias Avatar asked Jan 28 '09 15:01

Jader Dias


2 Answers

I was able to get this to work using configSource

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

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

and then in the external config file it needs to have the ?xml tag

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

and then you need to set up the external config file to always copy to the output directory

like image 147
Nick Avatar answered Sep 21 '22 19:09

Nick


You should not put the system.net section inside the appSettings.config. The standard practice is one config node in a sub config file. I'm not even sure if it's possible to share the same file with different nodes.

You should create another file named perhaps system.net.config and place the entire body in there, the full

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

Then in the App.config you will update the system.net to be

  <system.net>
    <connectionManagement configSource="system.net.connectionManagement.config"/>
  </system.net>
like image 45
Chris Marisic Avatar answered Sep 19 '22 19:09

Chris Marisic