アプリケーション設定のスキーマ

アプリケーション設定を使用すると、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>

関連項目