Pages

2013/03/20

[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]);
}
Related Posts Plugin for WordPress, Blogger...