ConfigurationManager in WPF

I have a configuration file in a wpf project to store a connection string. But when I try to get AppSettings and ConnectionStrings, I get null.

The WEB.config file looks like this:

<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="Trackboard" connectionString="Data Source=(localdb)\v11.0;Initial Catalog=Trackboard;Integrated Security=True;AttachDbFileName=E:\Users\Sean\Workspace\DATABASE\Trackboard.mdf"/> </connectionStrings> <appSettings> <add key="Trackboard" value="Data Source=(localdb)\v11.0;Initial Catalog=Trackboard;Integrated Security=True;AttachDbFileName=E:\Users\Sean\Workspace\DATABASE\Trackboard.mdf"/> </appSettings> </configuration> 

I tried several ways:

 W1: ConnStr = ConfigurationManager.ConnectionStrings["Trackboard"].ConnectionString; W2: ConnStr = ConfigurationManager.ConnectionStrings[0].ConnectionString; W3: ConnStr = ConfigurationManager.AppSettings["Trackboard"]; W4: ConnStr = ConfigurationManager.AppSettings[0]; 

None of them worked.

But it worked:

 ConnStr = @"Data Source=(localdb)\v11.0;Initial Catalog=Trackboard;Integrated Security=True;AttachDbFileName=E:\Users\Sean\Workspace\DATABASE\Trackboard.mdf"; 

(This means that I cannot use the configuration file, which is against my will) I need help.

+6
source share
4 answers

I get it! I did not have to create a new configuration file, the project has an app.config file by default. Now everything is all right. Thanks everyone!

 <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> </configSections> <connectionStrings> <add name="Trackboard.Properties.Settings.TrackboardConnectionString" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\DATABASE\Trackboard.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration> private static string ConnStr = ConfigurationManager.ConnectionStrings["Trackboard.Properties.Settings.TrackboardConnectionString"].ConnectionString; 
+2
source

Just add app.config , not web.config , because it is not a web application.

And after that, it's too easy, just add a link to System.Configuration, and then use that.

 var ConnStr = ConfigurationManager.AppSettings["Trackboard"]; 
+11
source

To do this, use the System.Configuration namespace

 using System.Configuration; 


Or add System.Configuration to the link

 System.ConfigurationManager.ConnectionStrings["Trackboard"].ConnectionString; System.ConfigurationManager.ConnectionStrings[0].ConnectionString; 
0
source

You need to reference the System.Configuration assembly, which is in the GAC

Using ConfigurationManager is not dependent on WPF: it is the preferred way to access configuration information for any type of application

See MSDN for more details.

0
source

All Articles