2010-09-03 9 views
10

¿Hay alguna manera de que el archivo de configuración .net principal app.config/web.config incluya otro archivo de configuración? Tengo la necesidad de mantener las cosas en archivos separados, pero vincularlos.Cómo incluir un archivo de configuración para .Net

Este es un ejemplo de lo que quiero incluir:

<?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> 
+0

Agregué un ejemplo del XML que quiero incluir en mi archivo de configuración principal. –

Respuesta

9

Sí, puede incluir archivos separados en el .config principal con el configSource atributo de este modo:

<securityConfiguration configSource="SomeOtherConfigFile.config" /> 

configuración externa los archivos que incluya de esta manera deben estar dentro del mismo directorio (o una subcarpeta) del archivo .config principal.

SectionInformation.ConfigSource Property

+0

¡Agradable! ¿Alguna razón específica por la que el elemento se denomina "configuración de seguridad"? Supongo que esperaría algo como "

+0

Puede usar el atributo configSource con cualquier sección de configuración, creo. Acabo de usar securityConfiguration como ejemplo porque estaba en un archivo de configuración que tuve a mano :) –

+0

Parece que puede agregar el atributo "configSource" a cualquier elemento e inyectará lo que esté en el archivo vinculado, ¿correcto? –

1

Sí, lo hago por las reglas de reescritura de URL.

Así que en mi web.config hago esto:

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

Sí, con el 'archivo' atribuyen

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

MSDN info

Parte de la información relevante del artículo de MSDN sobre el uso el atributo 'archivo':

El contenido del archivo separado se fusiona con la sección appSettings en el archivo Web.config. Esta funcionalidad está limitada al atributo appSettings.

Nota: En .NET Framework versión 2.0, ahora puede incluir configuraciones en un archivo separado para todos los elementos de configuración que admiten el atributo configSource. Sin embargo, cuando usa el atributo configSource, debe mover toda la sección al archivo separado porque no hay fusión de las configuraciones del elemento.

Cuestiones relacionadas