アプリケーション設定のスキーマ
アプリケーション設定を使用すると、Windows フォームや ASP.NET アプリケーションで、アプリケーション スコープおよびユーザー スコープの設定の格納と取得が可能になります。 このコンテキストでは、"設定" は、アプリケーションに固有の情報、または現在のユーザーに固有の情報です。データベース接続文字列からユーザーの優先される既定のウィンドウ サイズに至るまでのあらゆるものです。
既定では、Windows フォーム アプリケーションのアプリケーション設定には LocalFileSettingsProvider クラスを使用します。このクラスでは、.NET 構成システムを使用して XML 構成ファイルに設定を格納します。 アプリケーション設定で使用されるファイルの詳細については、「アプリケーション設定アーキテクチャ」を参照してください。
重要
.NET Framework で定義されているほとんどの構成セクションは、今後、.NET 6 以上および .NET Core バージョンでは機能しません。 ConfigurationManager は互換性のためにのみ提供されます。 最新の .NET では、アプリ設定に、app.config の代わりに appsettings.json ファイルが使用されます。 「.NET Framework から .NET にアップグレードした後の最新化」を参照してください。
app.config での使用を廃止し、同じ設定は、対応する API を (使用可能な場合は) 呼び出して行なうことを検討してください。 詳細については、「.NET での構成」を参照してください。
アプリケーション設定では、使用する構成ファイルの一部として、次の要素を定義します。
要素 | 説明 |
---|---|
<applicationSettings> | アプリケーションに固有のすべての <setting> タグが含まれます。 |
<userSettings> | 現在のユーザーに固有のすべての <setting> タグが含まれます。 |
<setting> | 設定を定義します。 <applicationSettings> または <userSettings> の子。 |
<value> | 設定の値を定義します。 <setting> の子。 |
<applicationSettings> 要素
この要素には、クライアント コンピューター上のアプリケーションのインスタンスに固有のすべての <setting> タグが含まれます。 属性は定義されません。
<userSettings> 要素
この要素には、アプリケーションを現在使用しているユーザーに固有のすべての <setting> タグが含まれます。 属性は定義されません。
<setting> 要素
この要素では、設定を定義します。 次の属性があります。
属性 | 内容 |
---|---|
name | 必須。 設定の一意の ID です。 Visual Studio で作成された設定は、ProjectName.Properties.Settings という名前で保存されます。 |
serializeAs | 必須。 値をテキストにシリアル化するために使用する形式。 次の値を指定できます。 - string 。 値は、TypeConverter を使用して文字列としてシリアル化されます。- xml 。 値は、XML シリアル化を使用してシリアル化されます。- binary 。 値は、バイナリ シリアル化を使用して、テキスト エンコード バイナリとしてシリアル化されます。- custom 。 設定プロバイダーは、この設定に固有の情報を持ち、シリアル化および逆シリアル化を行います。 |
<applicationSettings> で作成する設定の名前を、ファイルの先頭にある <configSections> 要素の下にエントリとして追加します。 次に例を示します。
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="WindowsFormsApp1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<section name="WindowsFormsApp1.Properties.MyCustomSettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
...
</configuration>
<value> 要素
この要素には、設定の値が含まれます。
例
次の例は、2 つのアプリケーション スコープ設定と 2 つのユーザー スコープ設定を定義するアプリケーション設定ファイルを示しています。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="WindowsApplication1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</sectionGroup>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="WindowsApplication1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" />
</sectionGroup>
</configSections>
<applicationSettings>
<WindowsApplication1.Properties.Settings>
<setting name="Cursor" serializeAs="String">
<value>Default</value>
</setting>
<setting name="DoubleBuffering" serializeAs="String">
<value>False</value>
</setting>
</WindowsApplication1.Properties.Settings>
</applicationSettings>
<userSettings>
<WindowsApplication1.Properties.Settings>
<setting name="FormTitle" serializeAs="String">
<value>Form1</value>
</setting>
<setting name="FormSize" serializeAs="String">
<value>595, 536</value>
</setting>
</WindowsApplication1.Properties.Settings>
</userSettings>
</configuration>
関連項目
.NET