.NET TIPS

独自のアプリケーション設定(.settingsファイル)を活用するには?[2.0のみ、C#、VB]

デジタルアドバンテージ 一色 政彦
2007/03/01

 「TIPS:アプリケーション設定を活用するには?」では、.NET Framework 2.0を使って、Windowsアプリケーション(やコンソール・アプリケーション)自体の設定に関する情報(以降、アプリケーション設定)を、アプリケーション構成ファイル(<プログラム名>.exe.config)やユーザー構成ファイル(user.config)で管理し(いずれも実体はXMLファイル)、その設定を実行時に取り出して利用する方法を紹介している。しかし、この方法はVisual Studio 2005(以降、VS 2005)のプロジェクト・プロパティの[設定]タブで入力したアプリケーション設定についてのみ当てはまる内容である。

 .NET Framework 2.0+VS 2005では、プロジェクトに追加した独自の.settingsファイルにより記述するアプリケーション設定ついても簡単に取り扱えるようにサポートされている。

 本稿では、.NET Framework 2.0で.settingsファイルのアプリケーション設定を取り扱う方法について紹介する。C#とVisual Basic(以降、VB)で取り扱い方法が違う部分は、その違いについても言及する。

独自の.settingsファイルへのアプリケーション設定の格納方法

 独自の.settingsファイルにアプリケーション設定を格納するには、VS 2005のIDEを使って、任意のプロジェクトに.settingsファイルを追加し、そのファイルを設定エディタで編集するだけである。

 それにはまず、ソリューション・エクスプローラなどから.settingsファイル(=設定ファイル)をプロジェクトに追加する。そして、その.settingsファイルをダブルクリックするなどして設定エディタで開き、そこにアプリケーション設定を入力していけばよい。具体的な入力方法は次の画面を参考にしてほしい。

VS 2005でのアプリケーション設定の入力
.settingsファイルのアプリケーション設定を入力しているところ。独自の.settingsファイルを作成するには、ソリューション・エクスプローラでプロジェクト項目を右クリックして、表示されるコンテキスト・メニューから[追加]−[新しい項目]を選択し、そこで表示される[新しい項目の追加]ダイアログで「設定ファイル」という項目テンプレートを選択して.settingsファイルを作成すればよい(ファイル名は何でもよい)。
  プロジェクトに追加された独自の.settingsファイルをダブルクリックして、設定エディタで開く。
  それぞれのアプリケーション設定に対して名前を付ける(この例では「StringSetting」)。プログラム中でアプリケーション設定を使う際には、ここで指定した名前でアクセスすることになる。
  値の型。「string」(String)だけでなく、「int」(Integer)や「bool」(Boolean)などさまざまな型をサポートしており、必要であれば「参照...」から任意の型を選択できる。そのほか、データベースへ接続するための「(接続文字列)」などが選択できる。
  スコープ。アプリケーション設定が用いられる範囲を、「アプリケーション」もしくは「ユーザー」から選択する。スコープについての詳細は「TIPS:アプリケーション設定を活用するには?」を参照されたい。
  アプリケーション設定の実際の値。ここでは「Hello String Setting!」という文字列値を入力した。

 独自の.settingsファイルが追加された状態でプロジェクトをビルドすると、そのファイルに指定されたアプリケーション設定がアプリケーション構成ファイル(厳密には「app.config」ファイル)に格納され、アプリケーション設定を取り扱うためのクラスがアセンブリ(=.EXEファイルや.DLLファイル)に自動的に組み込まれる。なおapp.configファイルは、ビルドすると自動的に出力ディレクトリに「<プログラム名>.exe.config」という名前でコピーされて、アプリケーション構成ファイルとして使われる。

 アプリケーション設定のスコープについては注意が必要だが、これは「TIPS:アプリケーション設定を活用するには?」の「スコープ:アプリケーション設定とユーザー設定」で説明しているので、本稿では説明を割愛する。

アプリケーション設定の活用方法

 それでは、実際にアプリケーション設定を使ってみよう。.NET Framework 2.0+VS 2005では、プロジェクトに追加された.settingsファイルのアプリケーション設定であっても、プロジェクトのデフォルト・アプリケーション設定(Settings.settingsファイル)の場合と同じように、非常に簡単にアクセスできるようになっている。

 次のコードは実際にアクセスしている例だ。

string アプリケーション設定 =
  global::ConsoleApplication1.Settings1.Default.StringSetting;
Dim アプリケーション設定 As String = _
  Global.ConsoleApplication1.Settings1.Default.StringSetting
組み込まれたアプリケーション設定にアクセスするコード(上:C#、下:VB)
C#の「global::」およびVBの「Global.」はなくてもよい。

 アプリケーション設定にアクセスするコードの名前規則は次のとおりだ。

  • C#:「<ルート名>.Default.<設定名>」
  • VB:「<ルート名>.Settings.Default.<設定名>」

 C#の<ルート名>は「<既定の名前空間>.<フォルダ名>.<ファイル名>」で構成される。.settingsファイルをプロジェクトのルート・フォルダに直接置いた場合には「.<フォルダ名>」は不要だ。<ファイル名>とはプロジェクトに追加された.settingsファイルの拡張子部分を抜いた名前である。

 VBの<ルート名>は「<ルート名前空間>.<ファイル名>」で構成される(C#の<既定の名前空間>とVBの<ルート名前空間>は意味的に同じものを指す)。

 アプリケーション設定にアクセスするコードを入力する際には(C#、VBともに)IntelliSenseが働く。

独自の.settingsファイルのアプリケーション設定でも働くIntelliSense(VBの例)
「ConsoleApplication1」というプロジェクト(ルート名前空間は「ConsoleApplication1」)に、「Settings1.settings」という独自の.settingsファイルを追加した場合の例。「StringSetting」はアプリケーション設定の設定名である。

 このアクセス方法は、C#では「TIPS:アプリケーション設定を活用するには?」で紹介したものとほとんど同じである。しかし一方のVBでは、大きく異なっているので注意してほしい。

 まず、独自の.settingsファイルに格納したアプリケーション設定ではVBのMy機能が利用できない。さらに、Windowsフォーム・アプリケーションのプロジェクトに対するデフォルト・アプリケーション設定ではアプリケーションが終了する際に変更した設定が自動的に保存されるようになっているが(=VBだけの機能)、独自の.settingsファイルではこの機能も働かない。つまりアプリケーション設定を保存するためには、(C#と同じように)VBでも必ずSaveメソッドの呼び出しが必要になる(Saveメソッドの呼び出し方法は、「TIPS:アプリケーション設定を活用するには?」を参照してほしい)。End of Article

利用可能バージョン:.NET Framework 2.0のみ
カテゴリ:Windowsフォーム 処理対象:構成ファイル
カテゴリ:クラス・ライブラリ 処理対象:構成ファイル
関連TIPS:アプリケーション設定を活用するには?

この記事と関連性の高い別の.NET TIPS
アプリケーション設定を活用するには?
Windowsフォームで構成ファイルによりプロパティ値を設定するには?
Windowsアプリケーションの位置やサイズを保存するには?
独自の.resxファイルの文字列リソースを活用するには?
[ASP.NET]ページから生成されたソース・コードを見るには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間