Схема параметров приложения

Параметры приложения позволяют приложению Windows Forms или ASP.NET хранить и получать параметры области приложения и области пользователей. В этом контексте параметр представляет собой любую часть информации, которая может быть связана с приложением или конкретным для текущего пользователя — все, что связано со строкой подключения к базе данных до предпочтительного размера окна по умолчанию.

По умолчанию параметры приложения в приложении Windows Forms используют LocalFileSettingsProvider класс, который использует систему конфигурации .NET для хранения параметров в XML-файле конфигурации. Дополнительные сведения о файлах, используемых параметрами приложения, см. в разделе "Архитектура параметров приложения".

Это важно

Большинство разделов конфигурации, определенных платформой .NET Framework, больше не работают в версиях .NET 6+ и .NET Core. ConfigurationManager предоставляется только для совместимости. Вместо app.configсовременный .NET использует файлappsettings.json для параметров приложения. См. статью "Модернизация после обновления до .NET" из .NET Framework.

Рекомендуется удалить использование в app.config и вызвать соответствующий API, если он доступен, чтобы сделать тот же параметр. Дополнительные сведения см. в статье Конфигурация в .NET.

Параметры приложения определяют следующие элементы в составе файлов конфигурации, которые он использует.

Элемент Description
<applicationSettings> Содержит все <setting> теги, относящиеся к приложению.
<userSettings> Содержит все <setting> теги, относящиеся к текущему пользователю.
<setting> Определяет параметр. Дочерний элемент или <applicationSettings><userSettings>.
<value> Определяет значение параметра. Дочерний <setting>объект .

элемент <applicationSettings>

Этот элемент содержит все <setting> теги, относящиеся к экземпляру приложения на клиентском компьютере. Он не определяет атрибуты.

элемент <userSettings>

Этот элемент содержит все <setting> теги, относящиеся к пользователю, который в настоящее время использует приложение. Он не определяет атрибуты.

элемент <setting>

Этот элемент определяет параметр. Он имеет следующие атрибуты.

Свойство Description
name Обязательное. Уникальный идентификатор параметра. Параметры, созданные с помощью 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>

См. также