[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]); }