[C#] ConnectionStrings が取得できない。



Config ファイルに記載した接続情報を ConfigurationManager クラスの ConnectionStrings で取得する際には、呼び出し元のクラス (プロジェクト) の Config ファイルを取得する。つまり、以下の場合は、A プロジェクトにある Config ファイルを取得する。

  • A プロジェクトから B プロジェクト (DLL 等) を呼び出す。
  • B プロジェクト内で ConnectionStrings を取得させる。

しかし、Config ファイルが存在しない状態で ConfigurationManager を参照すると、ConfigurationManager は machine.config を参照する。
ここには "LocalSqlServer" や "LocalMySqlServer" などが設定されていることがあり、混乱する。
参照する条件等があるのか調べきれていないが、思い込みで調査すると間違える可能性がある。

var connectionStrings = ConfigurationManager.ConnectionStrings;
Console.WriteLine("Connection strings.");
for (var i = 0; i < connectionStrings.Count; i++)
{
  var name = connectionStrings[i].Name;
  Console.WriteLine("Name: {0} Value: {1}", name, connectionStrings[name]);
}

このブログの人気の投稿

コピーした行の挿入が表示されない時はフィルタされていないかチェック

Excel で一部の図形だけ固定する