コラム

C# 自作DLLからapp.configの読み書き

コラム

自作DLLからアプリケーション設定を読み書きする方法についてご紹介。

アプリケーションからの読み書き方法

アプリケーション自身のアプリケーション設定を読み書きする場合は以下の方法で簡単に操作できます。

設定内容(Sample)を取得する場合は以下のように記述することで取得できます。

var value = Properties.Settings.Default.Sample;
Console.WriteLine(value);
//出力結果:サンプル

変更したい場合は以下の通りです。

Properties.Settings.Default.Sample = "サンプル2";
var value = Properties.Settings.Default.Sample;
Console.WriteLine(value);
//出力結果:サンプル2

変更した値が反映されない場合は、以下の要領で再読み込みを行うと設定した内容が取得できます。

//アプリケーション設定を再読み込み
Properties.Settings.Default.Reload();

自作DLLからの読み書き方法

別に作成したライブラリ(DLL)で呼び出し元のアプリケーション設定を読み書きする場合、Propertiesから取得しようとしても「Sample」とうプロパティ自体がありません。
ライブラリから呼び出し元アプリケーション設定を取得する場合は参照設定より「System.Configuration」を追加し、以下のように記述します。

var appConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var group = appConfig.SectionGroups["userSettings"];
var section = (ClientSettingsSection)group.Sections[0];
var setting = section.Settings.Get("Sample");
//値を取得
var value = setting.Value.ValueXml.InnerText;
Console.WriteLine(value);
//出力結果:サンプル

また、値を書き込む場合は以下のように記述します。

//既存値を削除する
section.Settings.Remove(setting);
//値を変更
setting.Value.ValueXml.InnerText = "サンプル2";
//アプリケーション設定へ追加
section.Settings.Add(setting);

~呼び出し元のアプリケーションで出力してみる~
//アプリケーション設定を再読み込み
Properties.Settings.Default.Reload();
Console.WriteLine(Properties.Settings.Default.Sample);
//出力結果:サンプル2

以上で自作DLLから呼び出し元アプリケーションの設定を読み書きする方法をご紹介しました。
少し大変になりますが、必要になった場合はご参照ください。

タイトルとURLをコピーしました