2012-01-24 8 views
16

El appsettings etiqueta en el app.config tiene un atributo de archivo:¿El atributo del archivo de aplicación sobrescribe lo que está en la aplicación.config?

<appSettings file="other.config"> 
.. 
.. 
</appSettings> 

¿Cómo funciona esto? ¿Combinará lo que está en la configuración de la aplicación (original) con el archivo other.config? ¿O lo sobrescribirá? ¿Qué ocurre si el archivo other.config no existe? ¿Debería bloquearse?

Lo estoy probando y si una clave no está en el original, no parece que la lea desde el otro.config?

¿El archivo other.config solo tiene nodos xml o debería estar dentro de un elemento de aplicación?

<appSettings> 
    <userId>123</userId> 
</appSettings> 

o

<userId>123</userId> 
+0

Encontrado usando una simple búsqueda en Google: http://www.codeproject.com/Articles/8818/Using-the-File-attribute-of-the-appSettings-elemen –

Respuesta

28
  • Si no existe el archivo no se bloqueará, sólo se tendrá en cuenta.
  • La configuración externa debe contener el nodo appSettings para que su primer ejemplo sea correcto.
  • El valor en el archivo externo tendrá prioridad, si no hay ningún valor presente, entonces se utiliza el valor de app.config.

¿Eso cubre todo?

+1

entonces en una aplicación de winforms, ¿cómo podría referenciarlo? 'file =/bin/debug/other.config'? – codecompleting

+0

No lo he probado, pero sospecho que no necesita la ruta (siempre que esté en la raíz de su proyecto). – DoctorMick

+3

en realidad está haciendo lo contrario, si el elemento está en el archivo de configuración externo, usa eso incluso si hay el mismo elemento en la aplicación.config – codecompleting

Cuestiones relacionadas