The name 'ConfigurationManager' does not exist in the current context

C#.NetVisual StudioVisual Studio-2008

C# Problem Overview


I am trying to access connectionStrings from the config file. The code is ASP.NET + C#. I have added System.Configuration to reference and also mentioned with using. But still it wouldn't accept the assembly.

I am using VSTS 2008. Any idea what could be the reason?

Another weird thing is the assembly name shown as "System.configuration", a lower case c which is not how names are displayed for other System assemblies.

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>

C# Solutions


Solution 1 - C#

It's not only necessary to use the namespace System.Configuration. You have also to add the reference to the assembly System.Configuration.dll , by

  1. Right-click on the References / Dependencies
  2. Choose Add Reference
  3. Find and add System.Configuration.

This will work for sure. Also for the NameValueCollection you have to write:

using System.Collections.Specialized;

Solution 2 - C#

In your project, right-click, Add Reference..., in the .NET tab, find the System.Configuration component name and click OK.

using System.Configuration tells the compiler/IntelliSense to search in that namespace for any classes you use. Otherwise, you would have to use the full name (System.Configuration.ConfigurationManager) every time. But if you don't add the reference, that namespace/class will not be found anywhere.

Note that a DLL can have any namespace, so the file System.Configuration.dll could, in theory, have the namespace Some.Random.Name. For clarity/consistency they're usually the same, but there are exceptions.

Solution 3 - C#

Ok.. it worked after restarting the VSTS. The link suggested the solution for the same problem. Wish i could have seen it before. :)

Solution 4 - C#

Adding the System.Configuration as reference to all the projects will solve this.

  1. Go to Project -> Add Reference

  2. In the box that appears, click the All assemblies list tab in the left hand list.

  3. In the central list, scroll to System.Configuration and make sure the box is checked.

  4. Click ok to apply, and you'll now be able to access the ConfigurationManager class.

Solution 5 - C#

Adding this answer, as none of the suggested solutions works for me.

> 1. Right-click on references tab to add reference. > 2. Click on Assemblies tab > 3. Search for 'System.Configuration' > 4. Click OK.

Solution 6 - C#

Just install

Install-Package System.Configuration.ConfigurationManager -Version 4.5.0

then use

using System.Configuration;

Solution 7 - C#

  1. Right-click on Project
  2. Select Manager NuGet Package
  3. Find System.Configuration
  4. Select System.Configuration.ConfigurationManager by Microsoft
  5. Install

now you can:

using System.Configuration;

Solution 8 - C#

I have gotten a better solution for the issue configurationmanager does not exist in the current context.

To a read connection string from web.config we need to use ConfigurationManager class and its method. If you want to use you need to add namespace using System.Configuration;

Though you used this namespace, when you try to use the ConfigurationManager class then the system shows an error “configurationmanager does not exist in the current context”. To solve this Problem:

ConfigurationManager.ConnectionStrings["ConnectionSql"].ConnectionString; 

Solution 9 - C#

If you're getting a lot of warnings (in my case 64 in a solution!) like

> CS0618: 'ConfigurationSettings.AppSettings' is obsolete: 'This method is obsolete, it has been replaced by System.Configuration!System.Configuration.ConfigurationManager.AppSettings'

because you're upgrading an older project you can save a lot of time as follows:

  1. Add System.Configuration as a reference to your References section.

  2. Add the following two using statements to the top of each class (.cs) file:

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

By this change all occurances of

ConfigurationSettings.AppSettings["mySetting"]

will now reference the right configuration manager, no longer the deprecated one, and all the CS0618 warnings will go away immediately.

Of course, keep in mind that this is a quick hack. On the long term, you should consider refactoring the code.

Solution 10 - C#

Are you sure you have added a reference to the .NET assembly and not something else? I'd remove your reference and then try re-adding it, making sure you select from the .NET tab in Visual Studio reference dialogue - the latest version should be 2.0.0.0 in GAC.

Solution 11 - C#

For a sanity check, try creating a new Web Application Project, open the code behind for the Default.aspx page. Add a line in Page_Load to access your connection string.

It should have System.Configuration added as reference by default. You should also see the using statement at the top of your code file already.

My code behind file now looks like this and compiles with no problems.

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;
    }
  }
}

This assumes I have a connection string in my web.config with a name equal to "MyConnectionStringName" like so...

<?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>

Yeah, it's elementary I know. But if you don't have any better ideas sometimes it helps to check against something really simple that you know should work.

Solution 12 - C#

For Visual Studio 2019

Right click on project and go to Manage NuGet Packages.

enter image description here

Search for System.Configuraion and install System.Configuration.ConfigurationManager

enter image description here

Now in your code, configuration manager will be recognized.

enter image description here

Solution 13 - C#

If this code is on a separate project, like a library project. Don't forgeet to add reference to system.configuration.

Solution 14 - C#

You may also get this error if you add a reference to a different, unrelated project by mistake. Check if that applies to you.

Solution 15 - C#

To Solve this problem go to Solution Explorer And right click reference and click add reference and chose .net and find system.configuration select an click ok

Solution 16 - C#

Add the configuration manager file to connect to the database web.config

Solution 17 - C#

In NetCore 3.1 I had to use Microsoft.Extensions.Configuration instead:

    public static async Task Main(string[] args)
    {
        var configuration = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile(path: "appsettings.json", optional: false, reloadOnChange: true)
            .Build();

...

Solution 18 - C#

The configuration manager of web configuration (web.config) is obsolete. So see this https://docs.microsoft.com/en-us/dotnet/api/system.configuration.configurationmanager.appsettings?redirectedfrom=MSDN&view=dotnet-plat-ext-3.1#System_Configuration_ConfigurationManager_AppSettings

create a instance of settings

var appSettings = ConfigurationManager.AppSettings;

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionpencilslateView Question on Stackoverflow
Solution 1 - C#KieranView Answer on Stackoverflow
Solution 2 - C#RameezView Answer on Stackoverflow
Solution 3 - C#pencilslateView Answer on Stackoverflow
Solution 4 - C#caliosView Answer on Stackoverflow
Solution 5 - C#Esther LalremruatiView Answer on Stackoverflow
Solution 6 - C#Saad LembarkiView Answer on Stackoverflow
Solution 7 - C#Samir MorimotoView Answer on Stackoverflow
Solution 8 - C#EmuView Answer on Stackoverflow
Solution 9 - C#MattView Answer on Stackoverflow
Solution 10 - C#Dan DiploView Answer on Stackoverflow
Solution 11 - C#NevadaView Answer on Stackoverflow
Solution 12 - C#Mohith MarattView Answer on Stackoverflow
Solution 13 - C#Steve ReyView Answer on Stackoverflow
Solution 14 - C#IkeView Answer on Stackoverflow
Solution 15 - C#Keshav PatelView Answer on Stackoverflow
Solution 16 - C#shyamuView Answer on Stackoverflow
Solution 17 - C#James HirschornView Answer on Stackoverflow
Solution 18 - C#FranzView Answer on Stackoverflow