2009-02-26 14 views

Respuesta

28

Yes, you do:

marco .Net leerá el app.config una vez, y nunca toque el app.config de nuevo. Es por eso que debe reiniciar la aplicación para recoger el cambio.

¿Por qué .Net framework detecta que app.config ha cambiado y actualiza todos los datos de configuración?

La razón es simple, esto no es posible en general. uso

Vamos “Imagine esto se podría hacer” lógica de Raymond aquí ...

4

Sí.

Probablemente se refiere al archivo appname.exe.config?

8

No, usted no tiene a. Pero si desea que los cambios en app.config surtan efecto, es posible que deba reiniciarlo. O quizás desee implementar un mecanismo de supervisión de archivos de configuración personalizada que alteraría la configuración de los servicios sobre la marcha.

+7

"si desea que los cambios en app.config surtan efecto", creo que eso está implícito en ¡la pregunta! –

+0

Genial, justo cuando ya no tengo pollos de goma. –

+0

@Gamecat: ¿rango libre? –

1

Esto queda fuera del alcance de la pregunta, pero supongo que desea realizar cambios solo en alguna sección "específica de la aplicación" (appSettings, etc.).

Es mejor que escriba su propio controlador de sección de configuración, que supervisa su propio archivo de configuración - el acercamiento nlog uses. Verifique la sección "Reconfiguración automática".

2

Normalmente sí. Sin embargo, podría escribir un servicio de Windows que colocaría un monitor de archivos en el archivo de configuración y detectaría una modificación y la aplicaría sin necesidad de reiniciar.

Por ejemplo, el marco de registro de Log4Net ofrece dicho mecanismo para su archivo de configuración.

7

Lo he usado antes. Esencialmente, esto vuelve a cargar la sección especificada antes de recuperar el valor. Posiblemente sea menos eficiente que un vigilante de archivos de configuración que se actualiza a pedido, pero sin duda es eficaz y se usa con cuidado.

ConfigurationManager.RefreshSection("appSettings") 
    sValue = ConfigurationManager.AppSettings(name) 
+0

¡Es un gran hallazgo! – d219

Cuestiones relacionadas