2014-02-07 46 views
6

我有一个WPF项目来存储ConnectionString的一个配置文件。 但是,当我尝试获得AppSettings和ConnectionStrings时,我得到空。ConfigurationManager中的WPF

Web.config文件中是这样的:

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

我在几个方面尝试:

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

他们没有工作。

但是这一次的工作:

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

(这意味着我不能使用配置文件,这是违背我的意愿) 我需要帮助。

+2

为什么你选择WPF应用程序的web.config。它必须要APP.config。 –

+0

:P我只是将它重命名为WEB.config –

回答

2

我已经想通了! 我不应该创建一个新的配置文件,项目中有一个默认的app.config文件。 现在一切都很好。 谢谢大家!

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

这一个使用System.Configuration命名空间

using System.Configuration; 


或在添加引用System.Configuration

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

我没有添加System.Configuration引用和命名空间。问题似乎是System.ConfigurationManager.ConnectionStrings的计数为0,这就是为什么我无法通过键或索引获取值。这很奇怪,它在winform应用程序中起作用。 –

0

你必须引用System.Configuration组件,其GAC

ConfigurationManager中的使用是不是WPF具体而言:它是访问任何ty的配置信息的特权方式应用

的PE请参阅MSDN进一步信息

11

只需添加一个app.config而不是web.config,因为它不是一个Web应用程序。

之后,它太简单了,只需添加一个引用到System.Configuration,然后用这个。

var ConnStr = ConfigurationManager.AppSettings["Trackboard"];