Estoy escribiendo una aplicación de prueba WinForms/C#/.NET 3.5 para el sistema que estamos desarrollando y nos cayó la necesidad de cambiar entre archivos .config en tiempo de ejecución, pero esto está resultando ser una pesadillaCambiando App.config en Runtime
Aquí está la escena: la aplicación WinForms está destinada a probar una aplicación web, dividida en 5 subsistemas. El proceso de prueba funciona con mensajes que se envían entre los subsistemas, y para que este proceso sea exitoso, cada subsistema tiene su propio archivo .config.
Para mi solicitud de prueba escribí 5 archivos de configuración separados. Me gustaría poder cambiar entre estos 5 archivos durante el tiempo de ejecución, pero el problema es: puedo editar programáticamente el archivo .config de la aplicación varias veces, pero estos cambios solo tendrán efecto una vez. He estado buscando un formulario para resolver este problema durante mucho tiempo, pero aún así no tuve éxito.
Sé que la definición del problema puede ser un poco confusa, pero realmente agradecería que alguien me ayudara.
¡Gracias de antemano!
--- --- ACTUALIZACIÓN 01-06-10
Hay algo que no he mencionado antes. Originalmente, nuestro sistema es una aplicación web con llamadas WCF entre cada subsistema. Por motivos de prueba de rendimiento (estamos utilizando ANTS 4), tuvimos que crear una copia local de los ensamblajes y hacer referencia a ellos desde el proyecto de prueba. Puede sonar un poco incorrecto, pero no pudimos encontrar una forma satisfactoria de medir el rendimiento de una aplicación remota.
actualización--- --- Fin
Esto es lo que estoy haciendo:
public void UpdateAppSettings(string key, string value)
{
XmlDocument xmlDoc = XmlDocument.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
foreach (XmlElement item in xmlDoc.DocumentElement)
{
foreach (XmlNode node in item.ChildNodes)
{
if (node.Name == key)
{
node.Attributes[0].Value = value;
break;
}
}
}
xmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
System.Configuration.ConfigurationManager.RefreshSection("section/subSection");
}
dup/related? http://stackoverflow.com/questions/1542171/change-app-config-at-runtime – Hogan
Ya he probado estos enfoques ... el problema es que la etiqueta que estoy cambiando está fuera de. También intenté crear nuevos AppDomains y establecer diferentes archivos .config para ellos, pero tampoco funcionó. –