Alois Kraus さんの Blog (たぶん同じ会社の人)
http://geekswithblogs.net/akraus1/articles/64871.aspx

キー / 値 のペアだけを App.config に格納する場合、 < appsettings > セクションを使う
App.Config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Setting1" value="Very" />
    <add key="Setting2" value="Easy" />
  </appSettings>
</configuration>

昔は、ConfigurationSettings.AppSettings でアクセスしていましたが、.NET 2.0では、
ConfigurationManager.AppSettings を使います。

C#のサンプルコード
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;

namespace AppSettings

{

    class Program

    {

        static void ShowConfig()

        {

            // For read access you do not need to call the OpenExeConfiguraton

            foreach (string key in ConfigurationManager.AppSettings)

            {

                string value = ConfigurationManager.AppSettings[key];

                Console.WriteLine("Key: {0}, Value: {1}", key, value);

            }

        }

 

        static void Main(string[] args)

        {

            ShowConfig();

 

            // Open App.Config of executable

            System.Configuration.Configuration config =

              ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

 

            // Add an Application Setting.

            config.AppSettings.Settings.Add("Modification Date",

              DateTime.Now.ToLongTimeString() + " ");

 

            // Save the configuration file.

            config.Save(ConfigurationSaveMode.Modified);

 

            // Force a reload of a changed section.

            ConfigurationManager.RefreshSection("appSettings");

 

            ShowConfig();

 

        }

    }

}

 


2回目の ShowConfig() で
Key:Modification Date   , Value: 今日の日付
が追加されて出力されることが確認できる。

 



Windows Formにいたっては、もっと簡単になる!

Settings set = Settings.Default;
string str = set.testSetting;
set.testSetting = "test value";   // Configの値変更
set.Save();               // 変更した値をセーブ

 

ここで、 set インスタンスの、testSetting プロパティは、
Nameに指定した文字列がそのまま使える。
理由は、裏でSettings.Designer.cs がプロパティを自動生成してくれているから。

 

ポイント
 Scope は User にしないと、書き込みできません。