Solución:
WebConfigurationManger sabe cómo lidiar con la herencia de la 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:
public static object GetSection(string sectionName)
{
...
return ConfigurationManager.GetSection(sectionName);
}
public static object GetSection(string sectionName, string path)
{
...
return HttpConfigurationSystem.GetSection(sectionName, path);
}
WebConfigurationManager está diseñado específicamente para aplicaciones ASP.NET.
WebConfigurationManager proporciona métodos adicionales para cargar archivos de configuración aplicables a 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 las aplicaciones web y de escritorio.
Aunque WebConfigurationManager se encuentra en el ensamblado System.Web, ConnectionStringSettingsCollection que devuelve se encuentra en System.Configuration.
Si recibe el error
No se puede aplicar la indexación con [] a una expresión de tipo ‘System.Configuration.ConnectionStringSettingsCollection’
al intentar acceder al índice de la matriz …
WebConfigurationManager.ConnectionStrings["Name"].ConnectionString
asegúrese de tener una referencia al ensamblaje System.Configuration