アプリケーション設定を使用すると、アプリケーション情報を動的に格納できます。 アプリケーション設定では、クライアント コンピューターを使用して、実行時にアプリケーション コードに含めてはならない情報を格納できます。 アプリケーション設定には、接続文字列、ユーザー設定などを含めることができます。
注
以前のバージョンの Visual Studio で使用されている動的プロパティは、アプリケーション設定によって置き換えられます。
各アプリケーション設定には一意の名前が必要です。 名前は、文字、数字、またはアンダースコアの任意の組み合わせにすることができます。 名前は数字で始めることはできません。また、スペースを含めることはできません。 名前は、 Name プロパティを使用して変更されます。
アプリケーション設定は、XML にシリアル化されるデータ型、またはTypeConverterToString/を実装するFromStringを持つ任意のデータ型として格納できます。 最も一般的な型は、 String、 Integer、および Booleanです。 値は、 Color、 Object、または接続文字列として格納することもできます。
アプリケーション設定にも値が保持されます。 値は Value プロパティで設定され、設定のデータ型と一致する必要があります。
さらに、アプリケーション設定は、デザイン時にフォームまたはコントロールのプロパティにバインドできます。
アプリケーション設定には、スコープに基づいて次の 2 種類があります。
アプリケーション スコープの設定 は、Web サービスの URL やデータベース接続文字列などの情報に使用できます。 これらの値は、アプリケーションに関連付けられます。 そのため、ユーザーは実行時にそれらを変更できません。
ユーザー スコープの設定 は、フォームの最後の位置の保持やフォント設定などの情報に使用できます。 ユーザーは実行時にこれらの値を変更できます。
設定の種類は、 Scope プロパティを使用して変更できます。
プロジェクト システムは、アプリケーション設定を次の 2 つの XML ファイルに格納します。
app.config ファイル。最初のアプリケーション設定を作成するときにデザイン時に作成されます。
user.config ファイル。アプリケーションを実行するユーザーが任意のユーザー設定の値を変更したときに実行時に作成されます。
ユーザー設定の変更は、アプリケーションが明示的にメソッドを呼び出さない限り、ディスクに書き込まれません。
デザイン時にアプリケーション設定を作成する
設計時には、次の 2 つの方法でアプリケーション設定を作成できます。
プロジェクト デザイナーの [設定] ページを使用します。
フォームまたはコントロールの [プロパティ ] ウィンドウを使用すると、設定をプロパティにバインドできます。
アプリケーション スコープの設定 (データベース接続文字列、サーバー リソースへの参照など) を作成すると、Visual Studio によって タグが付いた <applicationSettings> ファイルに保存されます。 接続文字列は、 <connectionStrings> タグの下に保存されます。
ユーザー スコープの設定 (既定のフォント、ホーム ページ、ウィンドウ サイズなど) を作成すると、Visual Studio によって タグが付いた <userSettings> ファイルに保存されます。
Important
接続文字列を app.configに格納する場合は、パスワードやサーバー パスなどの機密情報が接続文字列に表示されないように予防措置を講じる必要があります。
ユーザー ID やパスワードを指定するユーザーなど、外部ソースから接続文字列情報を取得する場合は、接続文字列の構築に使用する値に、接続の動作を変更する追加の接続文字列パラメーターが含まれていないことを確認します。
保護された構成機能を使用して、構成ファイル内の機密情報を暗号化することを検討してください。 詳細については、「 接続情報の保護」を参照してください。
注
クラス ライブラリの構成ファイル モデルがないため、アプリケーション設定はクラス ライブラリ プロジェクトには適用されません。 例外は、構成ファイルを持つことができるVisual Studio Tools for Office ランタイム DLL プロジェクトです。
カスタマイズされた設定ファイルを使用する
カスタマイズした設定ファイルをプロジェクトに追加して、設定のグループを簡単に管理できます。 1 つのファイルに含まれる設定が読み込まれ、単位として保存されます。 頻繁に使用されるグループと使用頻度の低いグループの設定を別々のファイルに保存すると、設定の読み込みと保存に時間を節約できます。
たとえば、 SpecialSettings.settings ファイルをプロジェクトに追加できます。
SpecialSettings クラスはMy名前空間で公開されていませんが、コードの表示では、Partial Class SpecialSettingsを含むカスタム設定ファイルを読み取ることができます。
設定デザイナーは、最初にプロジェクト システムが作成する Settings.settings ファイルを検索します。 この Settings.settings ファイルは、 プロジェクト デザイナー が [設定] タブに表示する既定のファイルです。 Settings.settings ファイルは、Visual Basic プロジェクトの [マイ プロジェクト ] フォルダーと Visual C# プロジェクトの [プロパティ ] フォルダーにあります。 その後、プロジェクト デザイナーは、プロジェクトのルート フォルダー内の他の設定ファイルを検索します。 そのため、カスタム設定ファイルをそこに配置する必要があります。 プロジェクト内の別の場所に .settings ファイルを追加した場合、 プロジェクト デザイナー では見つかりません。
Visual Basic の実行時にアプリケーション設定にアクセスまたは変更する
Visual Basic プロジェクトでは、 My.Settings オブジェクトを使用して実行時にアプリケーション設定にアクセスできます。 [ 設定] ページで、[ コードの表示 ] ボタンを選択して 、Settings.vb ファイルを表示します。
Settings.vb では、 Settings クラスを定義します。これにより、設定クラスでこれらのイベントを処理できます。
Settingsの クラスは、生成されたクラス全体ではなく、ユーザー所有のコードのみを表示する部分クラスです。
My.Settings オブジェクトを使用してアプリケーション設定にアクセスする方法の詳細については、「Access アプリケーション設定 (.NET Framework)」を参照してください。
実行時にユーザーが変更するユーザー スコープ設定の値 (フォームの位置など) は、 user.config ファイルに格納されます。 既定値は引き続き app.configに保存されます。
アプリケーションのテストなど、実行時にユーザー スコープの設定が変更され、これらの設定を既定値にリセットする場合は、[ 同期 ] ボタンを選択します。
My.Settings オブジェクトと既定の .settings ファイルを使用して設定にアクセスすることをお勧めします。
設定デザイナーを使用してプロパティを設定に割り当てることができます。また、アプリケーションのシャットダウン前にユーザー設定が自動的に保存されます。 ただし、Visual Basic アプリケーションは設定に直接アクセスできます。 その場合は、 MySettings クラスにアクセスし、プロジェクトのルートにあるカスタム .settings ファイルを使用する必要があります。 次のセクションで説明するように、C# アプリケーションの場合と同様に、アプリケーションを終了する前にユーザー設定を保存する必要があります。
C で実行時にアプリケーション設定にアクセスまたは変更する#
C# などの Visual Basic 以外の言語では、次の Visual C# の例に示すように、 Settings クラスに直接アクセスする必要があります。
Properties.Settings.Default.FirstUserSetting = "abc";
ユーザー設定を保持するには、このラッパー クラスの Save メソッドを明示的に呼び出す必要があります。 通常は、メイン フォームの Closing イベント ハンドラーで行います。 次の C# の例は、 Save メソッドの呼び出しを示しています。
Properties.Settings.Default.Save();
Settings クラスを使用したアプリケーション設定へのアクセスに関する一般的な情報については、「アプリケーション設定の概要 (.NET Framework)」を参照してください。
.NET Framework から .NET へのアプリの移行
.NET Framework では 、app.config ファイルを使用して、接続文字列やログ プロバイダーの構成など、アプリの設定を読み込みます。 最新の .NET では、アプリ設定に appsettings.json ファイルが使用されます。 app.config ファイルから appsettings.jsonへの変換の詳細については、「.NET Framework から .NET にアップグレードした後の最新化」を参照してください。