web-dev-qa-db-ja.com

WPFのConfigurationManager

接続文字列を格納するための構成ファイルがwpfプロジェクトにあります。しかし、AppSettingsとConnectionStringsを取得しようとすると、nullになります。

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

(つまり、設定ファイルを使用できません。これは私の意志に反します)助けが必要です。

8
Sean C.

私はそれを理解しました!新しい構成ファイルを作成するべきではありませんでした。プロジェクトにはデフォルトの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;
2
Sean C.

Webアプリケーションではないため、app.configではなくweb.configを追加するだけです。

その後は単純すぎます。System.Configurationへの参照を追加して、これを使用してください。

var ConnStr = ConfigurationManager.AppSettings["Trackboard"];
12
Mayur Dhingra

GACにあるSystem.Configurationアセンブリを参照する必要があります

ConfigurationManagerの使用はWPF固有ではありません。これは、あらゆるタイプのアプリケーションの構成情報にアクセスするための特権的な方法です。

詳細については、 [〜#〜] msdn [〜#〜] を参照してください。

1
Vignesh Kumar A

これはSystem.Configuration名前空間を使用します

using System.Configuration;


または参照にSystem.Configurationを追加

System.ConfigurationManager.ConnectionStrings["Trackboard"].ConnectionString;
System.ConfigurationManager.ConnectionStrings[0].ConnectionString;
1
Nagaraj S