Saltar al contenido

¿Cuál es la diferencia entre WebConfigurationManager y ConfigurationManager?

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

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *