ConfigurationManager в WPF

у меня есть файл конфигурации в проекте wpf для хранения connectionstring. Но когда я пытаюсь получить AppSettings и ConnectionStrings, я получаю null.

веб.файл конфигурации выглядит так:

<?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:UsersSeanWorkspaceDATABASETrackboard.mdf"/>
  </connectionStrings>
  <appSettings>
    <add key="Trackboard" value="Data Source=(localdb)v11.0;Initial Catalog=Trackboard;Integrated Security=True;AttachDbFileName=E:UsersSeanWorkspaceDATABASETrackboard.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:UsersSeanWorkspaceDATABASETrackboard.mdf";

(это означает, что я не могу использовать файл конфигурации, который против моей воли) Мне нужна помощь.

4 ответов


просто добавить app.config, а не web.config потому что это не веб-приложение.

и после этого это слишком просто, просто добавьте ссылку на систему.Конфигурация, а затем используйте это.

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

Я все понял! Я не должен был создавать новый файл конфигурации, есть приложение по умолчанию.конфигурационный файл в проекте. Теперь все в порядке. Спасибо вам всем!

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

используют System.Configuration пространство имен

using System.Configuration;


или добавить System.Configuration ссылка

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

вы должны ссылаться на System.Configuration сборка, которая находится в GAC

использование ConfigurationManager не является специфичным для WPF : это привилегированный способ доступа к информации конфигурации для любого типа приложения

см. MSDN дополнительная информация