CS0618 'ConfigurationSettings.GetConfig(string)' is obsolete [duplicate] - c#

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?

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!

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

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.

the System.configuration DLL
exsit in c:\Windows\Microsoft.NET\Framework\v2.0.50727\

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"/>

to use ConfigurationManager.AppSettings[""] Add Reference Assemblies not use using System.Configuration;

Just replace
System.Configuration.ConfigurationSettings.AppSettings
with
System.Configuration!System.Configuration.ConfigurationManager.AppSettings
in your code.

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"];

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;

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.

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 :)

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

Related

Referenced assembly not appearing in using directive

I am trying to access the functionality from System.IdentityModel.Services, in particular, FederatedAuthentication.
I have added a reference to the assembly, but in code, it does not appear in the using directive list.
My app is ASP.Net Web API C# running on VS2015 Pro.
Can anyone help me to access it please?
I've tried with lower case 'i' but to no avail:
Strangely, if I remove all references to System.Identity in the References list, in code, the Using directive for System.IdentityModel.Tokens does not present an error. Is that something to do with the GAC?
Reference added it System.identitymodel.services and not System.IdentityModel.Services
See first char i in identitymodel
Other thing you can check is:
check the properties of your System.identitymodel.services "Copy Local" should be set to false.
Issue was fixed by ensuring all projects in the solution had the same target framework (4.6).

How can I use the objects ConnectionStringSettings and ConfigurationManager into my C# - NUNIT project?

I'm trying to apply the solution proposed in this question: Using the connectionstring in an nunit test but I can't seem to find the ConnectionStringSettings and ConfigurationManager objects in the new Framework 4.5.
I added the namespace: System.Configuration. Where acording Microsoft Documentation is supposed to be. But Visual Studio still cant find it.
Could anyone here give me a hand with this?
Add reference to System.Configuration to your project..
Add reference to System.configuration to your project and use that dll in files

Why can't I reference System.ComponentModel.DataAnnotations?

I'm trying to use DataAnnotations in my WPF project to specify a maximum length of strings, with the following:
using System.ComponentModel.DataAnnotations;
However, I get the error
The type or namespace name 'DataAnnotations' does not exist in the
namespace 'System.ComponentModel' (are you missing an assembly
reference?)
I've seen other examples where DataAnnotations does exist in this namespace. I'm using C#4. Is there any reason why I can't use this? What can I do to fix it?
You have to reference the assembly in which this namespace is defined (it is not referenced by default in the visual studio templates). Open your reference manager and add a reference to the System.ComponentModel.DataAnnotations assembly (Solution explorer -> Add reference -> Select .Net tab -> select System.ComponentModel.DataAnnotations from the list)
If using .NET Core or .NET Standard
use:
Manage NuGet Packages..
instead of:
Add Reference...
To Reference System.ComponentModel.DataAnnotations
In a code file to have Using System.ComponentModel.DataAnnotations; at the top of the file such as:
using System.ComponentModel.DataAnnotations;
Add a .NET reference to your project by right clicking the project in solution explorer:
Hope this helps! This question helped me.
If you don't have it in references (like I did not) you can also add the NuGet System.ComponentModel.Annotations to get the assemblies and resolve the errors. (Adding it here as this answer still top of Google for the error)
I also had the same problem and I resolved by adding the reference in one of my projects which didn't had the mentioned reference. If you have 2-3 projects in your solution, then check by adding this reference to the other projects.
I found that I cannot reference System.ComponentModel.DataAnnotations from Silverlight 5 with the below version at (1). I found that Silverlight 5 assemblies cannot use .NET assemblies, it gives the error "You can't add a reference to System.ComponentModel.DataAnnotations as it was not built against the Silverlight runtime. ..." I plan to workaround this by hopefully installing the Silverlight 5 package found at (2) below. If this fails I will update this post.
[UPDATE: it failed. I installed everything relating to Silverlight 5 and I don't have the Silverlight version of the .dll assembly System.ComponentModel.DataAnnotations . Too bad. UPDATE II: I found an old .dll having this name from a previous installation of Silverlight developer's kit for Visual Studio 2008 or 2010. I added this file and it seems to 'work', in that IntelliSense is now recognizing attributes on class members, such as [Display(Name = "My Property Name")]. Whether or not this works for everything else in this .dll I don't know.]
(1)
Microsoft Visual Studio Professional 2013
Version 12.0.21005.1 REL
Microsoft .NET Framework
Version 4.5.51641
Installed Version: Professional
(2)
http://go.microsoft.com/fwlink/?LinkId=229318
I searched for help on this topic as I came across the same issue.
Although the following may not be the Answer to the question asked originally in 2012 it may be a solution for those who come across this thread.
A way to solve this is to check where your project is within the solution. It turns out for my instance (I was trying to install a NuGet package but it wouldn't and the listed error came up) that my project file was not included within the solution directory although showing in the solution explorer. I deleted the project from the directory out of scope and re-added the project but this time within the correct location.
Use the FrameWork version 4.5 and above for your project then problem solved.Because this namespace is under 4.5 and above.
System.ComponentModel.DataAnnotations is contained in its own assembly so you need to make sure you have it refernced. Just simply:
1). Right click on Soloution and choose add.
2). Choose reference from the list.
3). Search " System.ComponentModel.DataAnnotation " and tick the check box on its left hand side and press ok.
Job done, shouldnt have any refernce errors.
If you tried to update visual studio from vs2008 to vs2010. And your app uses framework 3.5 (and you don't want to upgrade it), and also used WCF RIA Services BETA... I have bad news... you MUST upgrade to WCF RIA Services v1 (BETA does not work on vs2010)... and due to this... you also have to install Silverlight 4 + upgrade to framework 4.0
See this:
http://blog.nappisite.com/2010/05/updating-visual-studio-2008net-35-ria.html
I upgraded from Silverlight 4 to Silverlight 5 and then I was having this issue. Although I had a reference to "System.ComponentModel.DataAnnotations" under "References" in my project, it had a yellow yield sign by it that indicated the previously referenced assembly could not be found. It turned out that the properties of the "System.ComponentModel.DataAnnotations" reference indicated "Specific Version = True", when I changed this to "Specific Version = False" it fixed the issue. Right click on the "System.ComponentModel.DataAnnotations" assembly under "References" and select "Properties" from the context menu. Check that the property value for "Specific Version = False".
It must have been referencing the old Silverlight 4 assembly which was no longer available after the upgrade to Silverlight 5.
I also have this problem.
That is very stupid when i add a namespace the same with System. I try to remove all references, but it is not resolved. I use "global::System.ComponentModel", it is working as well.
When i remove my namespace, this problem has been resolved.
For .Net Core in Visual Studio 2019 try this.
see VS suggestion
It worked for me, hope it'll work for you as well.
I was moving from .Net Framework 4.7.2 to .Net Standard 2.0.
In my case, I had to change DataAnnotations's reference from an Assembly reference to a Nuget package.
This error occurs when the reference to the "System.dll" got removed.Solution to the problem is very simple add the reference to "System.dll".The dll is normally available in the following location
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" .Add the reference your problem will get solved .
There was a problem using System.ComponentModel.DataAnnotation in net40 so I just did:
#if !NET40
using System.ComponentModel.DataAnnotations;
#endif
#if !NET40
[StringLength(256)]
#endif
The NET40 must be a predefined macro definition for .Net Framework 4.0
I had same problem, I solved this problem by following way.
Right click on page, select Property. in build action select Content.
Hope that this solution may help you.

Why can't I find or use UrlEncode in Visual Studio 2010?

I have a string that I'd like to encode into the standard URL format. From what I've found, I should be able to do this via the httpUtility.urlEncode method, but I don't seem to have that available.
I've added "using" references to both System.Web and System.Net to no avail. I've also seen other references to server.urlEncode amongst other variants, but I don't see the method anywhere.
I'm using the latest version of C# in Visual Studio 2010. Is the method called something different in this version, hidden somewhere else, or am I completely off base?
By default, new projects in Visual Studio 2010 target the .NET Framework 4.0 Client Profile, which does not include the System.Web assembly.
You can change the version of the Framework that your project targets in your project's Properties. Under the "Application" tab, select ".NET Framework 4.0" from the combobox labeled "Target framework".
Then, make sure that you have added a reference to System.Web using the "Add Reference" dialog.
Finally, add a using directive to the top of your class for the System.Web namespace:
using System.Web;
You'll find the various overloads of the UrlEncode method in the HttpUtility class. Sample code:
HttpUtility.UrlEncode("http://www.google.com/");
In .Net 4.5 you can (should?, 'please use' says a Katana comment) use the System.Net.WebUtility.UrlEncode method.
It can't be named differently since Visual Studio doesn't supply the class or method names, the .NET framework does.
All I can tell you is that the System.Web.HttpUtility AND System.Web.HttpServerUtility classes contain a method called UrlEncode(string).
If your project target ".NET Framework X Client Profile",you cannot not use "System.Web",but you can use "Uri.EscapeUriString | Uri.UnEscapeUriString" instead.
Yes, adding the reference was my answer. But be sure you double check the project, that it is in, if you have more than 1 project in your solution. I had a solution with 3 projects. System.Web was added to 2 projects but not the 3rd project.
I spent an hour trying to figure out why I couldn't use HttpUtility since it was a Reference in the main project. But I didn't check the sub-projects of the Solution.
Hope it helps someone.
Because you only see AspNetHostingPermission, AspNetHostingPermissionAttribute, and AspNetHostingPermissionLevel, I strongly suspect (like the other guys) that you're missing a reference.
The best you can do is start a new project, because it's pretty complicated to add/remove references without ruining your entire project.
How to: Add or Remove References in Visual Studio (MSDN) shows how to add/remove references. In your case, you should check/add the System.Web reference.

Help accessing application settings using ConfigurationManager

In .net frameworks 1.1, I use
System.Configuration.ConfigurationSettings.AppSettings["name"];
for application settings. But in .Net 2.0, it says ConfigurationSettings is obsolete and to use ConfigurationManager instead. So I swapped it out with this:
System.Configuration.ConfigurationManager.AppSettings["name"];
The problem is, ConfigurationManager was not found in the System.Configuration namespace. I've been banging my head against the wall trying to figure out what I'm doing wrong. Anybody got any ideas?
You have to reference the System.configuration assembly (note the lowercase)
I don't know why this assembly is not added by default to new projects on Visual Studio, but I find myself having the same problem every time I start a new project. I always forget to add the reference.
If you're just trying to get a value from the app.config file, you might want to use:
ConfigurationSettings.AppSettings["name"];
That works for me, anyways.
/Jonas
You are missing the reference to System.Configuration.
Visual Studio doesn't make it obvious which assembly reference you need to add. One way to find out would be to look up ConfigurationManager in the MSDN Library. At the top of the "about ConfigurationManager class" page it tells you which assembly and DLL the class is in.
System.Configuration us refer to System.configuration (not the small case for configuration, in .net 2.o it reefers to System.Configuration.dll.

Categories

Resources