2009-01-28 11 views
11

Actualización: esta cuestión, incluyendo el título, fue reformulado, ver la historia para los detalles¿Hay alguna forma de que un archivo App.config haga referencia a otro archivo de configuración completo? (NET)

Sé que la siguiente App.config incluye un archivo externo:

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

Pero no sé cómo mover system.net al segundo archivo. En realidad, no lo he probado, pero estoy casi seguro de que no funcionará, y quiero saber si hay una manera para que App.config incluya otro archivo App.config por referencia.

+0

¿Por qué dividir la configuración en 2 archivos en lugar de uno entonces? –

+0

Porque uno es para la biblioteca y el otro es para el proyecto que usa la biblioteca. –

+0

dll compartir las aplicaciones .config, ¿por qué necesita la sección system.net en otro archivo? – Adrian

Respuesta

0

creo que se acaba de quitar los atributos configSource y luego incluir todo el contenido dentro de los <appSettings> y <connectionStrings> elementos

+0

Pero aún necesito que sean 2 archivos separados, el primero haciendo referencia al segundo que realmente contiene la configuración. –

+0

P: "compartiré las aplicaciones .config" A: sí, lo sé. P: "¿por qué necesita la sección system.net en otro archivo?" R: Eso fue solo un ejemplo, para mi plena motivación, vea el último comentario que escribí a esta pregunta. –

6

Usted no debe poner la sección system.net dentro del appSettings.config. La práctica estándar es un nodo de configuración en un archivo de configuración secundaria. Ni siquiera estoy seguro de si es posible compartir el mismo archivo con diferentes nodos.

debe crear otro archivo llamado quizá system.net.config y colocar todo el cuerpo allí, el pleno

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

Luego, en el App.config va a actualizar el system.net ser

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

'system.net' no puede declarar un' configSource'. – bzlm

+0

respuesta actualizada para poner configSource 1 nivel más profundo, algo sin sentido para DV una respuesta que es esencialmente correcta, pero no de codificación de mano libre ... –

+0

Sería bueno si fuera más fácil encontrar en los documentos lo que puede y puede ' t se configSource. –

9

pude conseguir que esto funcione utilizando configSource

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

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

y luego en el ext ernal archivo de configuración que necesita para tener el? etiqueta XML

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

y entonces usted necesita para configurar el archivo de configuración externa para copiar siempre que el directorio de salida

Cuestiones relacionadas