¿Cuál es la diferencia entre el WebConfigurationManager
y el ConfigurationManager
?
¿Cuándo debo usar uno sobre el otro?
ACTUALIZADO
Acabo de mirar WebConfigurationManager
y, por alguna razón, no puede acceder a las cadenas de conexión como lo hace en ConfigurationManager
(como una matriz). ¿Alguien puede decirme por qué la EM lo hizo así? Parece ser una molestia obtener la cadena de conexión que necesita usando el WebConfigurationManager
.
¡ACTUALIZADO OTRA VEZ con CAVEAT!
Si no tiene una referencia al System.Configuration
espacio de nombres agregado a su proyecto, entonces Visual Studio mostrará un error cuando intente acceder WebConfigurationManager.ConnectionStrings
a una matriz similar.
c#
.net
asp.net
configurationmanager
webconfigurationmanager
John Bubriski
fuente
fuente
Respuestas:
WebConfigurationManger sabe cómo lidiar con la herencia de configuración dentro de una aplicación web. Como sabe, podría haber varios archivos web.config en una aplicación: uno en la raíz del sitio y cualquier número en los subdirectorios. Puede pasar la ruta al método GetSection () para obtener una posible configuración anulada.
Si miramos WebConfigurationManager con Reflector, entonces las cosas están claras:
fuente
WebConfigurationManager está diseñado específicamente para aplicaciones ASP.NET.
WebConfigurationManager proporciona métodos adicionales para cargar archivos de configuración aplicables a las aplicaciones web.
ConfigurationManager también proporciona métodos para cargar archivos de configuración aplicables a aplicaciones ".exe".
Sugeriría echar un vistazo a WebConfigurationManager y ver si le proporciona algo que simplemente no puede hacer con ConfigurationManager y usarlo en su lugar; de lo contrario, usar ConfigurationManager hará que sea mucho más fácil que su código se use sin problemas entre aplicaciones web y de escritorio.
fuente
Aunque WebConfigurationManager se encuentra en el ensamblado System.Web, ConnectionStringSettingsCollection que devuelve se encuentra en System.Configuration.
Si recibe el error
al intentar acceder al índice de la matriz ...
asegúrese de tener una referencia al ensamblaje System.Configuration
fuente
No estoy seguro de a qué te refieres con las cadenas de conexión.
Llamar a WebConfigurationManager.ConnectionStrings devuelve System.Configuration.ConnectionStringSettingsCollection, que es el mismo que obtendría si llamara ConfigurationManager.ConnectionStrings .
De lo contrario, como dice XOR, está diseñado para manejar múltiples web.configs jerárquicos, combinándolos según sea necesario a medida que se mueve por las carpetas en una aplicación.
fuente