2008-10-02 11 views
9

En mi proyecto tengo una funcionalidad que se usa como una aplicación web y como una aplicación de consola (para iniciar desde el planificador de tareas). Para hacer eso pongo el código común en una DLL que está siendo utilizada tanto por la aplicación web como por la aplicación de la consola. Esto funciona bienPoner información de configuración en una DLL

Sin embargo, las aplicaciones de consola y web ahora tienen un App.config y Web.config que son prácticamente iguales. ¿Es posible poner esta configuración también en la DLL y ponerla a disposición de ambas aplicaciones?

Respuesta

7

Sí, puede y debe poner las configuraciones comunes en el archivo de configuración para su DLL. Simplemente agregue un archivo app.config al proyecto DLL y asegúrese de leer la configuración desde dentro de la DLL. Cuando se implementa, su archivo de configuración necesita tener el nombre "MyDLL.dll.config" (asumiendo que su DLL se llama "MyDLL.dll") y estar en la misma carpeta que el DLL.

+9

¿Qué pasa si está en el GAC? – Ryu

+0

¿cómo se referirá el dll al archivo de configuración? ¿Cómo sabrá la ubicación del archivo de configuración? – BKSpurgeon

+0

@BKSpurgeon: no * sabe * que el archivo de configuración está en la misma carpeta que el archivo DLL, es el primer lugar que lo busca. Es por eso que no tiene que especificar la ruta del archivo de configuración en ningún lugar dentro de la DLL. – MusiGenesis

1

Sugiero que mueva la carga de configuración a la dll en lugar de la configuración completa, y luego llámelo desde las diferentes aplicaciones. Esto es para que:

  1. No es necesario volver a compilar para cambiar los datos de configuración (siempre útiles)
  2. Si necesita dividir la configuración de nuevo en el futuro, esto ya será posible con la DLL.
0

se puede poner la configuración común bajo el registro de Windows, accesible donde quiera

+0

Es difícil de implementar en una máquina nueva. – MusiGenesis

+0

solo si se despliega a mano. también, la primera vez que los valores predeterminados podrían ser insertados por el primero que los lee –

0

Suponiendo que está usando .Net, se puede configurar un archivo de .settings para almacenar los datos de configuración - los datos contenidos habrá almacenados como valores predeterminados para esas entradas de configuración, incluso si no hay un archivo app.config, su aplicación se ejecutará con esos valores predeterminados.

No estoy diciendo que es una buena cosa ... 8)

lo tanto, si se genera un proyecto que hace referencia a la DLL, deberá añadir el mismo archivo de .settings a ese proyecto y le aparecerán los ajustes en el archivo app.config para la aplicación y la DLL podría leer esos valores. SI esos valores no están en el app.config, el dll volverá a los valores predeterminados.

La mayoría de las personas pensarán que es algo malo y yo tiendo a estar de acuerdo, pero ahí está.

Cuestiones relacionadas