El nombre 'ConfigurationManager' no existe en el contexto actual

Resuelto pencilslate asked hace 15 años • 19 respuestas

Estoy intentando acceder connectionStringsdesde el archivo de configuración. El código es ASP.NET + C#. Agregué System.Configurationa 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=&quot;Data Source=localhost;Initial Catalog=qbank;Persist Security Info=True;User ID=**;Password=****;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>
pencilslate avatar Aug 14 '09 04:08 pencilslate
Aceptado

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

  1. Haga clic derecho en Referencias / Dependencias
  2. Elija Agregar referencia
  3. Busque y agregue System.Configuration.

Esto funcionará con seguridad. También para el NameValueCollectiontienes que escribir:

using System.Collections.Specialized;
Kieran avatar Dec 03 '2009 00:12 Kieran

En su proyecto, haga clic derecho en Agregar referencia... , en la pestaña .NET, busque el System.Configurationnombre del componente y haga clic en Aceptar.

using System.Configurationle 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.dllpodría, en teoría, tener el espacio de nombres Some.Random.Name. Para mayor claridad y coherencia, suelen ser iguales, pero hay excepciones.

Rameez avatar Sep 14 '2013 08:09 Rameez

Ok... funcionó después de reiniciar VSTS. El enlace sugirió la solución para el mismo problema. Ojalá pudiera haberlo visto antes. :)

pencilslate avatar Aug 14 '2009 01:08 pencilslate

Agregar el System.Configurationcomo referencia a todos los proyectos solucionará este problema.

  1. Ir a Project->Add Reference

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

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

  4. Haga clic en Aceptar para postularse y ahora podrá acceder a la ConfigurationManagerclase.

calios avatar Oct 22 '2018 12:10 calios