resource obtener nombre net leer existe example ejemplo contexto connectionstrings connectionstring conexion cadena asp app actual c# .net visual-studio visual-studio-2008

nombre - obtener cadena de conexion app config c#



El nombre ''ConfigurationManager'' no existe en el contexto actual (13)

Estoy tratando de acceder a connectionStrings desde el archivo de configuración. El código es ASP.NET + C #. He agregado System.Configuration a la referencia y también he mencionado con el uso. Pero aun así no aceptaría la asamblea.

Estoy usando VSTS 2008. ¿Alguna idea de cuál podría ser la razón?

Otra cosa extraña es el nombre del conjunto que se muestra como "Configuración del sistema", una c minúscula que no muestra cómo se muestran los nombres de otros conjuntos 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; } } } }

Config:

<?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=&quot;Data Source=localhost;Initial Catalog=qbank;Persist Security Info=True;User ID=**;Password=****;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> </connectionStrings> </configuration>


  1. Haga clic derecho en Proyecto
  2. Seleccione Manager NuGet Package
  3. Encuentra System.Configuration
  4. Seleccione System.Configuration.ConfigurationManager por Microsoft
  5. Instalar

ahora usted puede:

using System.Configuration;


¿Está seguro de que ha agregado una referencia al ensamblado de .NET y no a otra cosa? Quitaré su referencia y luego intentaré volver a agregarla, asegurándome de que selecciona de la pestaña .NET en el diálogo de referencia de Visual Studio; la última versión debería ser 2.0.0.0 en GAC.


Agregando esta respuesta, ya que ninguna de las soluciones sugeridas funciona para mí.

  1. Haga clic derecho en la pestaña de referencias para agregar referencia.
  2. Haga clic en la pestaña de Asambleas
  3. Buscar ''System.Configuration''
  4. Haga clic en Aceptar.

En su proyecto, haga clic con el botón derecho, Agregar referencia ... , en la pestaña .NET, busque el nombre del componente System.Configuration y haga clic en Aceptar.

using System.Configuration le dice al compilador / IntelliSense que busque en ese espacio de nombres las clases que use. De lo contrario, tendría que usar 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 / consistencia suelen ser los mismos, pero hay excepciones.


He obtenido una mejor solución para el problema: el administrador de configurationmanager does not exist in the current context .

Para una cadena de conexión de lectura desde web.config necesitamos usar la clase ConfigurationManager y su método. Si desea usar, necesita agregar espacio de nombres usando System.Configuration ;

Aunque utilizó este espacio de nombres, cuando intenta usar la clase ConfigurationManager , el sistema muestra un error "el administrador de configuración no existe en el contexto actual". Para resolver este problema:

ConfigurationManager.ConnectionStrings["ConnectionSql"].ConnectionString;


La adición de System.Configuration como referencia a todos los proyectos resolverá esto.

  1. Ir al Project -> Add Reference

  2. En el cuadro que aparece, haga clic en la pestaña Lista de All assemblies lista de la izquierda.

  3. En la lista central, desplácese hasta System.Configuration y asegúrese de que la casilla esté marcada.

  4. Haga clic en Aceptar para aplicar, y ahora podrá acceder a la clase ConfigurationManager .


No solo es necesario utilizar el espacio de nombres System.Configuration . También debe agregar la referencia al ensamblado System.Configuration.dll , mediante

  1. Haga clic derecho en las referencias / dependencias
  2. Elija Agregar referencia
  3. Encuentra y agrega System.Configuration .

Esto funcionará seguro. También para NameValueCollection tienes que escribir:

using System.Collections.Specialized;


Ok .. funcionó después de reiniciar el VSTS. El link sugiere la solución para el mismo problema. Ojalá lo hubiera visto antes. :)


Para resolver este problema, vaya al Explorador de soluciones. Haga clic con el botón derecho en Referencia y haga clic en Agregar referencia y elija .net y busque el sistema. Configuración Seleccione un clic Aceptar


Para una comprobación de validez, intente crear un nuevo proyecto de aplicación web, abra el código que se encuentra detrás de la página Default.aspx. Agregue una línea en Page_Load para acceder a su cadena de conexión.

Debe tener System.Configuration agregado como referencia por defecto. También debería ver la declaración de uso en la parte superior de su archivo de código ya.

Mi código detrás del archivo ahora tiene este aspecto y se compila sin problemas.

using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; namespace WebApplication1 { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string connString = ConfigurationManager.ConnectionStrings["MyConnectionStringName"].ConnectionString; } } }

Esto asume que tengo una cadena de conexión en mi web.config con un nombre igual a "MyConnectionStringName" como así ...

<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> </configSections> <connectionStrings> <add name="MyConnectionStringName" connectionString="Data Source=.;Initial Catalog=MyDatabase;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration>

Sí, es elemental lo sé. Pero si no tienes mejores ideas, a veces es útil verificar algo realmente simple que sabes que debería funcionar.


Si está recibiendo muchas advertencias (en mi caso, ¡64 en una solución!) Como

CS0618: ''ConfigurationSettings.AppSettings'' está obsoleto: ''Este método está obsoleto, ha sido reemplazado por System.Configuration! System.Configuration.ConfigurationManager.AppSettings''

porque está actualizando un proyecto anterior, puede ahorrar mucho tiempo de la siguiente manera:

  1. Agregue System.Configuration como una referencia a su sección de Referencias .
  2. Agregue las dos siguientes declaraciones de using en la parte superior de cada archivo de clase ( .cs ):

    using System.Configuration; using ConfigurationSettings = System.Configuration.ConfigurationManager;

Por este cambio todas las apariciones de

ConfigurationSettings.AppSettings["mySetting"]

ahora hará referencia al administrador de configuración correcto, ya no está en desuso, y todas las advertencias del CS0618 desaparecerán de inmediato.

Por supuesto, ten en cuenta que esto es un hack rápido. A largo plazo, debe considerar refactorizar el código.


Si este código está en un proyecto separado, como un proyecto de biblioteca. No intente agregar una referencia a la configuración del sistema.


También puede obtener este error si agrega una referencia a un proyecto diferente, no relacionado por error. Compruebe si eso se aplica a usted.