→ http://fuunyan.blogspot.jp/2012/09/blog.html
C#で開発を行っていてアプリの固有情報を保存するにあたり、何の制約もないのに ini ファイルを使うことも無かろう・・・って事で C# スタンダードらしい「アプリケーション構成ファイル( App.config )」を利用することにした。
しかし探し方が下手なのか、もっとも単純な使用例(書いて読む)が見当たらなかったので、自分で書いておく。
コードを書く前に
事前準備として system.configuration.dll への参照を追加する必要がある。
ソリューション エクスプローラで右クリック →「参照の追加(R)...」で表示される「参照の追加」ウィンドウが開く。
.NET タブの中から「System.Configuration」を選択して「 OK 」を押下。
お試し環境は、いつもの Button x 2 と ListBox があるフォーム画面です。
// 下記宣言を追加 using System.Configuration;
// app.config の appSettings に情報を設定 private void button1_Click(object sender, EventArgs e) { // System.Configuration.ConfigurationManager を利用するにあたり // System.Configuration.dll への参照を追加する必要がある // (ソリューション エクスプローラで右クリック → 参照の追加) // Configuration オブジェクトを開く(対象ユーザーは「全てのユーザー」を指定) Configuration conf = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); // 登録情報の作成 // キー名:KeyName の後ろに通番を付与した書式 // データ:日付と時間を登録する string keyStr = "KeyName" + ConfigurationManager.AppSettings.Count.ToString(); string valueStr = DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString(); // 情報の登録 → 保存 → 情報更新(次回アクセス時) conf.AppSettings.Settings.Add(keyStr, valueStr); conf.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); }
// app.config の appSettings から情報を取得 private void button2_Click(object sender, EventArgs e) { listBox1.Items.Add("--- start reading ----------"); // App.Config からの読み込み // AllKeys は全てのキー名を取得してくれる foreach (string keyStr in ConfigurationManager.AppSettings.AllKeys) // ピンポイントで取得するだけなら下記1行だけで ok (取得先のキー名がわかっている時など) listBox1.Items.Add(ConfigurationManager.AppSettings[keyStr]); listBox1.Items.Add("--- end reading ----------"); listBox1.SelectedIndex = listBox1.Items.Count - 1; }
Button1 を押すことでデータを登録します。
Button2 を押すことで appSettings よりデータを取得します。
取得したデータは ListBox に追加されます。
データが膨大になった場合のセクション分けもできるらしいのですが、時間なので今回はこれまで。
0 件のコメント:
コメントを投稿