気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

C# resxファイルの動的読み込み、参照

exeファイルにリソースを埋め込まずに動的に読み込むことで、リソース内の内容の変更時に再ビルドが不要にする。
Javaのプロパティーファイルのような使い方をする。

設定

resxファイルのプロパティを変更する。

カスタムツール : (入力無し)
ビルドアクション : コンテンツ
出力ディレクトリにコピー : 常にコピーする

コード

String resourceFilePath = "Resources.resx";
var resources = new NameValueCollection();
using (var reader = new ResXResourceReader(resourceFilePath))
{
    foreach (DictionaryEntry entry in reader)
    {
        resources.Add(entry.Key.ToString(), entry.Value.ToString());
    }
}

// 指定KEYに設定した値を表示
Console.WriteLine(resources["KEY1"]);
Console.WriteLine(resources["KEY2"]);

参考URL

[C#]リソース(ResX)ファイルを実行時に動的に読みこむ | 学習B5デスノート
.NET TIPS:1つのキー文字列に対して複数の文字列値を保持するには? - @IT