共用方式為


應用程式設定架構

應用程式設定允許 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 中的設定

應用程式設定定義以下元素作為其所使用的設定檔。

元素 Description
<applicationSettings> 包含所有 <setting> 與該應用程式相關的標籤。
<userSettings> 包含所有 <setting> 針對目前使用者的標籤。
<setting> 定義了一個設定。 或為其中一方<applicationSettings><userSettings>的孩子。
<value> 定義了一個設定的價值。 之 <setting>子。

<applicationSettings> 元素

此元素包含所有 <setting> 針對用戶端電腦上該應用程式實例特有的標籤。 它沒有定義屬性。

<userSettings> 元素

此元素包含所有 <setting> 目前使用該應用程式使用者專屬的標籤。 它沒有定義屬性。

<setting> 元素

這個元素定義了一個設定。 它具備以下特點。

Attribute Description
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> 元素

此元素包含設定值。

Example

以下範例展示了一個應用程式設定檔案,定義了兩個應用程式範圍設定與兩個使用者範圍設定:

<?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>

另請參閱