Necesito volver a cargar el archivo de configuración después de modificarlo. ¿Cómo se puede hacer esto usando appdomains? Una muestra de código sería útil.Recarga del archivo de configuración .NET
Respuesta
ConfigurationManager.RefreshSection
podría funcionar para usted.
Sí, es posible ... dependiendo de CÓMO accede al archivo de configuración.
Si confía en el comportamiento predeterminado, entonces la respuesta es NO.
Sin embargo, si accede a la configuración a través de una propiedad static
del método común para su proyecto, entonces es posible volver a cargarlo.
No tengo el fragmento de código ahora, pero hice algo similar incluso con un FileSystemWatcher
para detectar cambios en el archivo config
.
Hay una advertencia, solo funciona con las propiedades a las que se accede directamente a través de su código, la configuración automática no se volverá a cargar cuando lo haga.
Realmente he encontrado la solución al problema dado. A continuación se presentan las líneas de código fiew de cómo se puede hacer esto:
AppDomainSetup domaininfo = new AppDomainSetup();
domaininfo.ApplicationBase = System.Environment.CurrentDirectory;
domaininfo.ConfigurationFile = "Target_Config.exe.config";
Evidence adevidence = AppDomain.CurrentDomain.Evidence;
AppDomain dom = AppDomain.CreateDomain("test", adevidence, domaininfo);
var someType =(SomeType)dom.CreateInstanceAndUnwrap("Target_Assembly",
"Target_Assembly.SomeType");
El punto clave aquí es la clase AppDomainSetup, lo que permite establecer la propiedad ConfigurationFile en el conjunto que se creará. Ahora, podemos monitorear el archivo de configuración "Target_Config.exe.config" para ver los cambios. Cuando se cambia, el appdomain creado anteriormente debe descargarse y luego volver a crearse.
Esta es probablemente una solución para reutilizar un archivo de configuración en varias aplicaciones sin copiarlo para cada aplicación. – Markus
Digamos que usted tiene el siguiente fichero de configuración:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="test" value="1" />
</appSettings>
</configuration>
Probemos el primer enfoque ingenuo. La siguiente aplicación intentará agarrar el valor de la appSetting
llamado test
una vez por segundo, e imprimir su valor:
static void Main(string[] args)
{
while(true)
{
Console.WriteLine(ConfigurationManager.AppSettings["test"]);
Thread.Sleep(1000);
}
}
Pero, por desgracia! Mientras esto se está ejecutando, notará que continúa imprimiendo 1
, y no recoge ningún cambio.
Si actualiza su código a la siguiente, se van a resolver ese problema, y recogerá los cambios cada vez que se cambie:
static void Main(string[] args)
{
while(true)
{
ConfigurationManager.RefreshSection("appSettings");
Console.WriteLine(ConfigurationManager.AppSettings["test"]);
Thread.Sleep(1000);
}
}
Lástima que esta publicación no se haya marcado como respuesta. Tiendo a preferir más respuestas de "verbose", pero bueno, soy solo yo. –
ConfigurationManager.RefreshSection("configuration");
Properties.Settings.Default.Reload();
- 1. .NET archivo de configuración propio
- 2. Recarga del archivo de propiedades que se carga usando setBundle
- 3. Recarga/refrescante archivo de configuración de Spring sin necesidad de reiniciar el contenedor de servlets
- 4. Recarga del código de Clojure en Tomcat
- 5. Configuración del foco en .NET UserControl ...?
- 6. Erlang: ¿Cómo se recarga una configuración env de la aplicación?
- 7. Ubicaciones del archivo de configuración de IIS7
- 8. ¿La configuración del archivo web.config anula la configuración de IIS?
- 9. Esquema (XSD) para el archivo de configuración de Microsoft .NET
- 10. Recarga de rendimiento al usar atributos en .NET
- 11. .Net salvapantallas no encuentra el archivo de configuración
- 12. .net AppSettings archivo de configuración: NameValueCollection vs KeyValueConfigurationCollection
- 13. .NET 3.5 DLL utilizando su propio archivo de configuración
- 14. Cómo incluir un archivo de configuración para .Net
- 15. C# archivo de configuración del servicio de Windows
- 16. Cambiar el nombre del archivo de configuración de la aplicación .NET
- 17. Manejo del evento de detención/recarga del contenedor
- 18. .Net Confusión de archivos de configuración
- 19. Diferencia entre la ubicación del archivo de configuración php.ini y el archivo de configuración cargada?
- 20. C# Configuración ubicación del archivo xml
- 21. ¿Cómo recupero AppSettings del archivo de configuración del ensamblado?
- 22. Obteniendo la ubicación del archivo user.config de cualquier aplicación .net
- 23. Herramienta de configuración de .NET Framework 2.0
- 24. Configuración del cumplimiento de CLS para un ensamblado .NET
- 25. Botón de recarga Iframe
- 26. ASP .NET ProcessModel configuración
- 27. Rpmbuild - configuración del nombre del archivo .rpm creado
- 28. La recarga del servidor de desarrollo Django lleva demasiado tiempo
- 29. Archivos de configuración compartidos en .NET
- 30. Generando clase C# .net del archivo WSDL
lo que realmente necesita para recargar el archivo de configuración después de hacer ¡algunos cambios!?, no sé, solo estoy preguntando, porque recuerdo haber leído algo de lo que no necesitamos volver a cargar. ¡Gracias! –
¿Qué tipo de programa es este? Servicio de Windows? ASP.NET? –
posible duplicado de [Volver a cargar la configuración de un archivo de configuración externo durante el tiempo de ejecución] (http://stackoverflow.com/questions/4934898/reload-configuration-settings-from-an-external-config-file-during-run -time) –