问题
I got the following warning
'System.Configuration.ConfigurationSettings.AppSettings' is obsolete: '"This method is obsolete, it has been replaced by System.Configuration!System.Configuration.ConfigurationManager.AppSettings"'
How do you fix it?
回答1:
Add a reference to the assembly System.Configuration
.
Then at the top (assuming C#) using System.Configuration (Imports System.Configuration in VB.NET).
Use ConfigurationManager.AppSettings["MySetting"]
to access the settings!
回答2:
as its a warning i dont think it matters unless you have turned off a treat warnings as errors setting
add a reference to System.Configuration
all you have to do is to update to the latest code so where you used ConfigurationSettings.AppSettings[""] change to ConfigurationManager.AppSettings[""]
and this should work
回答3:
Just in case someone else was looking for the Add Reference option to achieve the accepted answer in Visual Studio 2010. (I had to do this in updating a VB project).
In Visual Studio 2010:
- Click on Project > Add Reference.
- Click on the C# tab (even though mine was a pure VB project)
- Scroll down halfway to find System.Configuration (I had v4 since .NET Framework 4.0 was the chosen version)
- Click OK, then update the line of code as per the suggestion given.
From System.Configuration.ConfigurationSettings.AppSettings("name") to System.Configuration.ConfigurationManager.AppSettings
Without adding the reference IntelliSense won't suggest ConfigurationManager when you type it, and that's because it doesn't have a reference to be aware of where it is. Which is also why you will get errors when you updated the line of code according to their suggestion.
回答4:
the System.configuration DLL exsit in c:\Windows\Microsoft.NET\Framework\v2.0.50727\
回答5:
After adding the reference using System.Configuration;
at the top of the class. Still the same warning remains.
In Code Behind:
Instead of ConfigurationSettings.AppSettings["ConnectionString"]
Use ConfigurationManager.AppSettings["ConnectionString"]
By Default the System.configuration Dll will be added in your project.
In Web.config or App.config:
<add key="ConnectionString" value="Some Connection Strings or Specific Path"/>
回答6:
to use ConfigurationManager.AppSettings[""]
Add Reference Assemblies not use using System.Configuration;
回答7:
Just replaceSystem.Configuration.ConfigurationSettings.AppSettings
withSystem.Configuration!System.Configuration.ConfigurationManager.AppSettings
in your code.
回答8:
example:
replace
string smtpServer = System.Configuration.ConfigurationSettings.AppSettings["EmailServer"];
with
string smtpServer = ConfigurationManager.AppSettings["EmailServer"];
also make sure on the top of the case you add:
using System.Configuration;
回答9:
It's simple as mentioned above, just add a reference "System.Configuration" for the application, and within the code you can add "using System.Configuration" to the top of the code and use "ConfigurationManager.AppSettings[""]" where you need it.
回答10:
I also face same issue, sometimes the assembly reference not loaded properly or if you are using multiple projects it give problems sometimes. You just add reference to assembly. Right Click>Add Reference>.Net>System.configuration> Click OK You can see now there are many configuration options available choose ConfigurationManager.AppSetting["Con"].ToString();
Build and Smile :)
回答11:
you must add reference of System.onfiguration in your project then add "Using System.onfiguration;"
next step using like this:
private string SQLConnectionString = ConfigurationManager.AppSettings["SQlConnectionString"];
回答12:
I had the same problem in a C# project and I fixed it by writing appSettings instead of AppSettings in the XML file (camelCase expected) in the tag
<appSettings>
<add key="myKey" value="my Value"/>
<appSettings>
After all C# is case sensitive
来源:https://stackoverflow.com/questions/3959605/system-configuration-configurationsettings-appsettings-is-obsolete