應用程式設定架構
應用程式設定可讓 Windows Forms 或 ASP.NET 應用程式儲存和擷取應用程式範圍和使用者範圍的設定。 在此內容中, 設定 是應用程式或目前使用者特定的任何資訊片段,從資料庫連接字串到使用者慣用的預設視窗大小。
根據預設,Windows Forms 應用程式中的應用程式設定會使用 LocalFileSettingsProvider 類別,它會使用 .NET 組態系統將設定儲存在 XML 組態檔中。 如需應用程式設定所使用檔案的詳細資訊,請參閱 應用程式設定架構 。
重要
.NET Framework 所定義的大部分組態區段在 .NET 6+ 和 .NET Core 版本中已不再運作。 ConfigurationManager 僅提供相容性。 新式 .NET 會 針對應用程式設定使用 appsettings.json 檔案,而不是 app.config 。 請參閱 從 .NET Framework 升級至 .NET 之後現代化。
請考慮移除 app.config 中的 使用量,並呼叫對應的 API,如果有的話,即可進行相同的設定。 如需詳細資訊,請參閱 .NET 中的組態。
應用程式設定會將下列元素定義為其使用組態檔的一部分。
元素 | 描述 |
---|---|
<application設定> | 包含應用程式專屬的所有 < 設定 > 標籤。 |
<user設定> | 包含目前使用者專屬的所有 < 設定 > 標記。 |
<setting> | 定義設定。 應用程式設定 > 或 < 使用者設定的 < 子系。 > |
<value> | 定義設定的值。 設定 > 的子系 < 。 |
<application設定 > 專案
這個專案包含用戶端電腦上應用程式實例特有的所有 < 設定 > 標記。 它不會定義任何屬性。
<user設定 > 元素
此元素包含目前使用應用程式之使用者專屬的所有 < 設定 > 標記。 它不會定義任何屬性。
<setting > 元素
這個專案會定義設定。 其中有下列屬性。
屬性 | 描述 |
---|---|
name | 必要。 設定的唯一識別碼。 透過 Visual Studio 建立設定會以 名稱 ProjectName.Properties.Settings 儲存。 |
serializeAs | 必要。 用來將值序列化為文字的格式。 有效值為: - string . 值會使用 TypeConverter 序列化為字串。- xml . 值會使用 XML 序列化進行序列化。- binary . 值會使用二進位序列化,序列化為文字編碼的二進位檔。- custom . 設定提供者具備此設定的固有知識,並加以序列化和取消序列化。 |
新增您在應用程式中建立 < 的設定名稱設定 > 做為檔案頂端 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 > 元素
這個專案包含設定的值。
範例
下列範例顯示定義兩個應用程式範圍設定和兩個使用者範圍設定的應用程式佈建檔:
<?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>