2011-12-07 17 views
8

Digamos que tengo 2 proyectos, donde el proyecto A hace referencia al proyecto B. El proyecto A es un proyecto de aplicación web y el proyecto B es una biblioteca de clases.Qué sucede con app.config en un proyecto al que se hace referencia

La biblioteca de clases tiene un archivo app.config donde se almacenan algunas configuraciones. Cuando compilo el proyecto A, projectB.dll se crea en la carpeta bin.

¿Qué sucede con los contenidos del archivo app.config cuando se implementa la aplicación web? ¿La configuración está compilada en ProjectB.dll?

¿Es posible recuperar el contenido de la aplicación.config utilizando una herramienta como reflector o ILSpy?

Respuesta

7

Puede agregar un app.config a un proyecto de biblioteca, pero es no utilizado o incluido en cualquiera de los resultados.

La configuración debe estar en la aplicación, no en la biblioteca. Por lo tanto, debe poner la configuración en cuestión en el archivo web.config de su aplicación web, no en la aplicación.config de una biblioteca.

+0

Me doy cuenta de que es la forma en que se supone que debe hacerse. Estoy viendo un proyecto heredado donde las referencias web están en la biblioteca de la clase:/después de mirar un poco más el código veo que las URL de los servicios web se configuran programáticamente para que las configuraciones de app.config no se usen realmente . El codificador original probablemente hizo esto debido a lo que explicaste en tu respuesta. Gracias – woggles

2

En tiempo de ejecución, su proyecto B utilizará la configuración de su proyecto de aplicación web (el host). Por lo tanto, tendría que volver a copiar su configuración en el archivo web.config.

3

App.config es la configuración, no la aplicación, por lo que no se guarda en dll y no se puede mostrar por reflector ni descompilar.

tiene que configurar Proyecto B con ajustes para Proyecto A (en web.config, ya que es de aplicación web).

No hay ningún mecanismo para automagicaly configurar módulos externos, a menos que tengan valores de retroceso predeterminados codificados.

1

App.config de su biblioteca de clase B se vuelve irrelevante. Si desea utilizar datos desde allí, debe copiar todo el contenido en app.config de su aplicación principal (en su caso web.config). A continuación, podrá acceder a los contenidos de la misma utilizando ConfigurationManager de los proyectos A y B

Cuestiones relacionadas