21

作業ディレクトリに保存されている App.config ファイルから値を取得しようとしていますが、プログラムを実行すると null が返されます。なぜそうなのか非常に混乱しており、エラーを見つけるためにコードを何度も調べました。

ここに私の App.config ファイルコードがあります:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="provider" value="System.Data.SqlClient" />
  </appSettings>
  <connectionStrings>
    <add name="connection" connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=Autos;Integrated Security=True;Pooling=False" />
  </connectionStrings>
</configuration>

ここに私のC#コードがあります:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.Common;

namespace DataProviderFun
{
  class Program
  {
    static void Main(string[] args)
    {
      string p = ConfigurationManager.AppSettings["provider"];
      string c = ConfigurationManager.ConnectionStrings["connection"].ConnectionString;

      ...

このコードを実行すると、p = null および c = null になります。

System.Configuration.dll を参照しました。

4

4 に答える 4

24

アプリケーションを実行しているディレクトリに構成ファイルが正しく配置されていることを確認しましたか? そのディレクトリに実際に <アプリ名>.exe.config というファイルがありますか?

私はここで推測しています-おそらく、App.Configファイルを別のプロジェクトに追加し、次にexeアセンブリプロジェクトに追加しました...?

ところで、コードと App.Config をそのままクリーンなプロジェクトにコピーしたところ、このコードが機能しました。したがって、コードではなく、構成ファイル自体の方向を調べます。コードは大丈夫です...

お役に立てれば、

ラン

于 2010-12-01T23:29:16.157 に答える
0

デバッグ フォルダに .dll がある場合は、confif ファイルの名前を yourprojectname.dll.config に変更します。これは私の場合はうまくいきました

于 2021-04-28T13:50:39.117 に答える