しかし、テキストエディタや、QuickSharp(QuickSharpについて)で開発したりすると、そもそもソリューションやプロジェクトファイルが作られないので、明示的にConfigファイルを読み込まなければならない。
Configファイルを読み込む
Configファイルを読み込むには、以下のような処理が必要。
using System.Configuration;
System.Diagnostics;
var configs = new Dictionary<string, string>();
// Configファイルを読み込む
ConfigurationManager.OpenExeConfiguration(@Process.GetCurrentProcess().MainModule.FileName);
// ConfigファイルをDictionaryに突っ込む
foreach (var key in ConfigurationManager.AppSettings.AllKeys)
{
configs[key] = ConfigurationManager.AppSettings[key];
}
Console.WriteLine(configs["hoge"]);
OpenExeConfiguration
には、注意すべき点がある。// エラーになる
var c = ConfigurationManager.OpenExeConfiguration(@"app.config");
// エラーになる
var c = ConfigurationManager.OpenExeConfiguration(@"app");
// これが正解
var c = ConfigurationManager.OpenExeConfiguration(@"csharp.exe");
// C:\csharp.exe.config と表示される
Console.WriteLine(c.FilePath);
OpenExeConfiguration
の引数には、実行ファイルのパスを渡す必要がある。そのため、Configファイルは「app.config」ではなく「○○.exe.config」という名前でなければならない。
Visual Studioしか使ってこなかったので、てっきり「app.config」でイケる思ったが、よくよく考えてみると
bin\debug
やbin\release
の中のConfigファイルは「○○.exe.config」になっているのを思い出した。ちなみに、
Process.GetCurrentProcess().MainModule.FileName
が実行ファイル名の取得する方法。参考
以上
written by @bc_rikko
0 件のコメント :
コメントを投稿