C# で App.config 設定ファイルを読み書きする方法

App.config ファイルの概要

アプリケーション設定ファイルは標準的な XML ファイルであり、タグや属性は大文字・小文字を区別します。このファイルはアプリケーションを再コンパイルせずに設定を変更できるため、柔軟性のある設計が可能です。ルート要素は <configuration> であり、その中にあらゆる設定セクションが含まれます。

よく使われる設定構造の例:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <appSettings>
        <add key="connectionstring" value="User Source=.;Password=123456;Initial Catalog=test;Provider=SQLOLEDB.1;" />
        <add key="TemplatePATH" value="Template" />
    </appSettings>
</configuration>

.NET Framework 2.0 以降では、System.Configuration.ConfigurationManager を使用して設定を読み取るのが一般的です。ただし、このプロパティは読み取り専用であり、直接書き込みはできません。

App.config の読み書き方法

App.config の <appSettings> に含まれる値は次のようにして読み取ることができます:

string value = ConfigurationManager.AppSettings["connectionstring"];

値を変更するには、Configuration オブジェクトを使用してファイルを開き、変更後に保存する必要があります。

設定の追加・更新・削除

using System.Configuration;

public void UpdateAppSettings()
{
    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

    // 値の取得
    string currentPath = config.AppSettings.Settings["TemplatePATH"]?.Value;

    // 値の更新
    config.AppSettings.Settings["TemplatePATH"].Value = "NewTemplate";

    // 新しいキーの追加
    config.AppSettings.Settings.Add("NewKey", "NewValue");

    // 不要なキーの削除
    config.AppSettings.Settings.Remove("connectionstring");

    // 変更を保存
    config.Save(ConfigurationSaveMode.Modified);
    ConfigurationManager.RefreshSection("appSettings");
}

注意点

  • 存在しないキーにアクセスしても例外は発生しません。戻り値は null になります。
  • すでに存在するキーを追加すると、値がカンマで連結されます。
  • コンパイル後、実行ディレクトリに AppName.exe.config という名前で設定ファイルが生成されます。
  • XML は大文字・小文字を区別するため、キー名やセクション名に注意してください。

カスタム設定の保存

アプリケーションでユーザー設定を保存したい場合、Visual Studio の Settings.settings ファイルを使用するのが便利です。

設定ファイルの作成

  1. プロジェクト → [追加] → [新しい項目] を選択
  2. [設定ファイル] を選択し、任意の名前を付けて作成

保存と読み込みのコード例

// 設定の読み込み
string myConfig = Properties.Settings.Default.testconfig;

// 設定の更新
Properties.Settings.Default.testconfig = "Updated Value";
Properties.Settings.Default.Save();

保存場所

通常、設定は次のパスに保存されます:

C:\Users\<ユーザー名>\AppData\Local\<会社名>\<アプリ名>_<ハッシュ>\<バージョン>

シリアルポート設定の保存例

例えば、シリアル通信の設定(COMポート番号やボーレートなど)を保存する場合、次のように設定ファイルに項目を追加します:

Properties.Settings.Default.ComPort = "COM3";
Properties.Settings.Default.BaudRate = 9600;
Properties.Settings.Default.Save();

タグ: C# App.config 設定ファイル ConfigurationManager XML

7月1日 21:49 投稿