2010-02-05 11 views
5

Tenemos un proyecto algo complejo que los desarrolladores originales dividieron en varios proyectos para fines de organización. Lo que esto significa para mí es que tengo un sitio ASP.Net que tiene un archivo web.config y contiene todo tipo de configuraciones correctas, y otro proyecto que se compila en un archivo DLL que tiene su propio archivo .config, app.config..Net Confusión de archivos de configuración

En la DLL, sería muy bueno poder acceder a todas las configuraciones de aplicaciones que tengo en el archivo web.config del proyecto ASP.Net.

¿Esto es posible? ¿Es una buena práctica? Realmente no quiero copiar y pegar la misma información y tener que mantenerlos sincronizados manualmente entre los 2 (en realidad podría haber hasta 20, es un proyecto grande y alguien lo organizó a un nivel absurdo) .config files .

¿Alguna sugerencia o mejores prácticas?

Respuesta

3

Esto es realmente el comportamiento predeterminado - ConfigurationManager.AppSettings lea el web.config actual para todas las DLL.
A veces, los archivos .config se crean para otros proyectos (o dlls), pero no se utilizan en el sitio y deben fusionarse en web.config.

+0

¡Muchas gracias! Estaba tratando de probar, pero tenía miedo de extrañar una extraña combinación de circunstancias al momento de implementar. –

0

System.Web.Configuration.WebConfigurationManager.AppSettings tiene acceso al web.config desde cualquier biblioteca de clase. Solo asegúrese de agregar una referencia a System.Configuration y System.Web a cualquier biblioteca que necesite acceder a esta.

Y para responder a su pregunta acerca de la práctica estándar, sí es común almacenar las claves/valores de la aplicación en el archivo web.config para mantener las cosas centralizadas en las aplicaciones web ASP.NET y los sitios web. En su web.config simplemente use la sección <appSettings> como lo haría normalmente en los archivos app.settings.

+0

Tienes razón, pero ¿por qué harías referencia a 'System.Web'? Puedes simplemente hacer referencia a 'System.Configuration', y todo debería estar bien, por ej. obtener una configuración de aplicación a través de 'ConfigurationManager.AppSettings'. –

+0

Bastante justo. Tiendo a usar la funcionalidad adicional que se encuentra en WebConfigurationManager específica para aplicaciones web, por lo que la prefiero. Si simplemente encontrar pares de nombre-valor es todo lo que necesita OP, ConfigurationManager puede ser la mejor solución ... –

+0

Buena discusión de los dos gerentes y su uso: http://stackoverflow.com/questions/698157/whats-the- difference-between-the-webconfigurationmanager-and-the-configurationma/698163 –

Cuestiones relacionadas