.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ファイルが追加された状態でプロジェクトをビルドすると、そのファイルに指定されたアプリケーション設定がアプリケーション構成ファイル(厳密には「app.config」ファイル)に格納され、アプリケーション設定を取り扱うためのクラスがアセンブリ(=.EXEファイルや.DLLファイル)に自動的に組み込まれる。なおapp.configファイルは、ビルドすると自動的に出力ディレクトリに「<プログラム名>.exe.config」という名前でコピーされて、アプリケーション構成ファイルとして使われる。
アプリケーション設定のスコープについては注意が必要だが、これは「TIPS:アプリケーション設定を活用するには?」の「スコープ:アプリケーション設定とユーザー設定」で説明しているので、本稿では説明を割愛する。
アプリケーション設定の活用方法
それでは、実際にアプリケーション設定を使ってみよう。.NET Framework 2.0+VS 2005では、プロジェクトに追加された.settingsファイルのアプリケーション設定であっても、プロジェクトのデフォルト・アプリケーション設定(Settings.settingsファイル)の場合と同じように、非常に簡単にアクセスできるようになっている。
次のコードは実際にアクセスしている例だ。
|
||
組み込まれたアプリケーション設定にアクセスするコード(上: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:アプリケーション設定を活用するには?」を参照してほしい)。
利用可能バージョン:.NET Framework 2.0のみ カテゴリ:Windowsフォーム 処理対象:構成ファイル カテゴリ:クラス・ライブラリ 処理対象:構成ファイル 関連TIPS:アプリケーション設定を活用するには? |
|
「.NET TIPS」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|