El nombre 'ConfigurationManager' no existe en el contexto actual
Estoy intentando acceder connectionStrings
desde el archivo de configuración. El código es ASP.NET + C#. Agregué System.Configuration
a la referencia y también mencioné el uso. Pero aún así no aceptaría la asamblea.
Estoy usando VSTS 2008. ¿Alguna idea de cuál podría ser el motivo?
Otra cosa extraña es el nombre del ensamblaje que se muestra como "System.configuration", una c minúscula que no es la forma en que se muestran los nombres de otros ensamblajes del sistema.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
namespace Utility
{
public class CommonVariables
{
public static String ConnectionString
{
get { return ConfigurationManager.ConnectionStrings["EmployeeEntities"].ConnectionString; }
}
}
}
Configuración:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="qbankEntities" connectionString="metadata=res://*/qbankModel.csdl|res://*/qbankModel.ssdl|res://*/qbankModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=localhost;Initial Catalog=qbank;Persist Security Info=True;User ID=**;Password=****;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
No sólo es necesario utilizar el espacio de nombres System.Configuration
. También hay que añadir la referencia al ensamblaje System.Configuration.dll
, por
- Haga clic derecho en Referencias / Dependencias
- Elija Agregar referencia
- Busque y agregue
System.Configuration
.
Esto funcionará con seguridad. También para el NameValueCollection
tienes que escribir:
using System.Collections.Specialized;
En su proyecto, haga clic derecho en Agregar referencia... , en la pestaña .NET, busque el System.Configuration
nombre del componente y haga clic en Aceptar.
using System.Configuration
le dice al compilador/IntelliSense que busque en ese espacio de nombres cualquier clase que utilice. De lo contrario, deberá utilizar el nombre completo ( System.Configuration.ConfigurationManager
) cada vez. Pero si no agrega la referencia, ese espacio de nombres/clase no se encontrará en ninguna parte.
Tenga en cuenta que una DLL puede tener cualquier espacio de nombres, por lo que el archivo System.Configuration.dll
podría, en teoría, tener el espacio de nombres Some.Random.Name
. Para mayor claridad y coherencia, suelen ser iguales, pero hay excepciones.
Ok... funcionó después de reiniciar VSTS. El enlace sugirió la solución para el mismo problema. Ojalá pudiera haberlo visto antes. :)
Agregar el System.Configuration
como referencia a todos los proyectos solucionará este problema.
Ir a
Project
->Add Reference
En el cuadro que aparece, haga clic en la
All assemblies
pestaña de lista en la lista de la izquierda.En la lista central, desplácese
System.Configuration
y asegúrese de que la casilla esté marcada.Haga clic en Aceptar para postularse y ahora podrá acceder a la
ConfigurationManager
clase.