2011-06-17 16 views
13

Tengo un proyecto de aplicación de consola y proyecto de biblioteca (dll) en una solución.¿Cómo se lee app.config en el nivel dll?

El proyecto de biblioteca tiene un archivo app.config donde almaceno un par de valores clave que utilizo en la biblioteca. La aplicación de consola hace referencia a este dll.

Tengo otro archivo app.config en aplicación de consola donde tengo la configuración para la aplicación de consola.

Cuando ejecuto el programa de mi library.dll siempre se refiere app.config de la aplicación de consola .

Quiero separar la responsabilidad de cada dll, por lo que quiero que un dll siempre se refiera a su propio archivo app.config que no sea el de la aplicación que realiza la llamada.

En este caso library.dll debe utilizar app.config de su propia , no de la aplicación de llamada.

¿cómo consigo esto?

Respuesta

8

lo que están pidiendo que se ha pedido muchas veces una y otra vez ...

, de hecho, se podría instruir a .NET para leer los valores de configuración de otro archivo, en su caso será algo así como library.dll.config , hay proyectos o clases para hacer esto llamado algo así como assemblysettingsreader o similar.

Mi sugerencia es de todos modos para no hacerlo. Al principio suena genial, pero piense de esta manera, su biblioteca no se está ejecutando sola, puede ser referenciada por una aplicación de consola, un sitio web o un proyecto de wpf ui, todos estos clientes pueden necesitar personalizar la configuración y tener configuraciones diferentes para que haga pleno sentido para tener las configuraciones relacionadas con los archivos de configuración de la aplicación de llamada.

+1

+1 por sugerencia para evitar archivos de configuración para bibliotecas. Mejor proporcionar algún tipo de API en la biblioteca para pasar los parámetros de configuración del cliente a lib programáticamente y permitir que el cliente almacene los parámetros en su propio archivo de configuración. –

+5

Davide, el primer párrafo de su respuesta no ayuda, esta pregunta fue el primer resultado en mi búsqueda en Google y esperaba algo bueno de una respuesta de 5 votos. si conoce muchas soluciones, puede especificar una para personas como yo. su segundo párrafo tampoco es verdadero. Tengo un módulo de inicio de sesión que siempre llamará a una base de datos específica, independientemente de qué módulo llame a esa dll, así que necesito configurarlo una vez, aunque tengo múltiples interfaces de usuario. – AaA

+1

Sería útil si puede proporcionar una solución a la pregunta. –

Cuestiones relacionadas