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

Параметры приложений позволяют динамически сохранять и извлекать значения свойств и другие сведения о приложении.Они также позволяют поддерживать индивидуальные настройки приложений и пользователей на клиентском компьютере.Часто это данные (такие как строка подключения), которые очень важны для выполнения приложения и которые нежелательно включать непосредственно в код приложения.Например, может потребоваться хранить две разные строки подключения к базе данных и извлекать одну из них во время выполнения в зависимости от местоположения компьютера.Или может возникнуть желание хранить настройки цветов пользователя и извлекать их при каждом следующем запуске приложения.

Обратите внимание, что параметры приложения Visual Studio средство, которое заменяет динамические свойства компонента в более ранних версиях.

Каждый параметр приложения должен иметь уникальное имя.Именем может быть любая комбинация букв, цифр или символов подчеркивания, которая не начинается с цифры и не содержит пробелов.Имя может быть изменено с помощью свойства Name.

Параметры приложений могут храниться в виде любого типа данных, являющегося сериализуемым в формат XML или имеющего метод TypeConverter, реализующий ToString/FromString.Наиболее распространенными типами являются String, Integer и Boolean, но можно также хранить значения как Color, Object или в виде строки подключения.

Параметры приложений также содержат значение.Значение задается с помощью свойства Value и должно соответствовать типу данных параметра.

Кроме того, параметры приложений могут быть связаны со свойством формы или элемента управления во время разработки.

Существуют два типа параметров приложений в зависимости от области действия:

  • Параметры, область действия которых ограничивается приложением, могут использоваться для хранения такой информации, как URL-адрес для веб-службы или строка подключения к базе данных.Эти значения связаны с приложением.Следовательно, пользователи не могут изменять их во время выполнения.

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

Можно изменить тип параметра с помощью свойства Scope.

Система работы с проектами хранит параметры приложений в двух файлах XML: файле app.config, который создается во время разработки при создании первого параметра приложения; и файле user.config, который создается во время выполнения, когда работающий с приложением пользователь изменяет значение любого параметра пользователя.Обратите внимание, что изменения параметров пользователей не записываются на диск, если только приложение специально не вызовет для этого метод.

Создание параметров приложения во время разработки

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

При создании параметра, область действия которого ограничивается приложением (например строки подключения к базе данных или ссылки на ресурсы сервера), Visual Studio сохраняет его в файл app.config с тегом <applicationSettings>.(Строки подключения сохраняются под тегом <connectionStrings>.)

При создании параметра, область действия которого ограничивается пользователем (например шрифта по умолчанию, домашней страницы или размера окна), Visual Studio сохраняет ее в файл app.config с тегом <userSettings>.

Примечание о безопасностиПримечание по безопасности

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

Если информация для строки подключения берется из внешнего источника (например пользователь задает идентификатор пользователя и пароль), то необходимо следить за тем, чтобы значения, которые используются для составления строки подключения, не содержали дополнительных параметров строки подключения, изменяющих действие подключения.

Рассмотрите возможность использования функции защищенной конфигурации для шифрования секретной информации в файле конфигурации.Дополнительные сведения см. в разделе Securing Connection Strings.

ПримечаниеПримечание

Из-за отсутствия модели файла конфигурации для библиотек классов, параметры приложений не применяются для проектов библиотек классов.Исключением является Visual Studio Tools для проекта Office DLL, который может иметь файл конфигурации.

Использование индивидуальных файлов параметров

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

Например, можно добавить в проект такой файл, как SpecialSettings.Settings.Хотя класс SpecialSettings и не открыт для доступа через пространство имен My, но функция Просмотр кода позволяет прочесть индивидуальный файл параметров, содержащий Partial Class SpecialSettings.

Конструктор параметров сначала ищет файл Settings.settings, который создает система работы с проектами; это файл, отображаемый Конструктором проектов по умолчанию на вкладке Параметры.Файл Settings.Settings находится в папке "Мои проекты", предназначенной для проектов Visual Basic, и в папке "Свойства", предназначенной для проектов Visual C#.Затем Конструктор проектов ищет другие файлы параметров в корневой папке проекта.Таким образом, индивидуальный файл параметров следует помещать туда же.Если добавить файл с расширением SETTINGS в другое место проекта, Конструктор проекта не сможет его найти.

Доступ или изменение параметров приложения во время выполнения в Visual Basic

В проектах Visual Basic во время выполнения доступ к параметрам приложения можно получить с помощью объекта My.Settings.На странице Параметры нажмите кнопку Просмотреть код, чтобы просмотреть файл Settings.vb.Файл Settings.vb определяет класс Settings, который позволяет обрабатывать эти события в классе параметров: SettingChanging, PropertyChanged, SettingsLoaded и SettingsSaving.Обратите внимание, что класс Settings в файле Settings.vb является частичным классом, который отображает только принадлежащий пользователю код, а не весь сгенерированный класс.Дополнительные сведения о доступе к параметрам приложения с помощью объекта My.Settings см. в разделе Доступ к параметрам приложения (Visual Basic).

Значения любого изменяемого пользователем во время выполнения приложения параметра, область действия которого ограничивается пользователем (например положение формы), хранятся в файле User.config.Обратите внимание, что значения по умолчанию по-прежнему сохраняются в файл app.config.

В случае изменения во время выполнения приложения каких-либо параметров, область действия которых ограничивается пользователем, например при тестировании приложения, и требуется восстановить их значения по умолчанию, нажмите кнопку Синхронизировать.

Настоятельно рекомендуется использовать для доступа к параметрам объект My.Settings и используемый по умолчанию файл с расширением SETTINGS.Это связано с тем, что можно использовать Конструктор параметров для задания свойств параметрам и, кроме того, настройки пользователей автоматически сохраняются перед завершением работы приложения.Однако приложение Visual Basic может получить доступ к настройкам напрямую.В этом случае необходим доступ к классу MySettings и использование индивидуального файла с расширением SETTINGS в корневой папке проекта.Необходимо также сохранить пользовательские настройки до завершения работы приложения, как бы это было сделано для приложения C#. Это описывается в следующем разделе.

Доступ или изменение параметров приложения во время выполнения в Visual C#

В языках, отличных от Visual Basic, например Visual C#, доступ к классу Settings необходимо осуществлять напрямую, как показано в следующем примере Visual C#.

Properties.Settings.Default.FirstUserSetting = "abc";

Также необходимо явным образом вызывать метод Save этого оберточного класса, чтобы сохранить настройки пользователя.Обычно это выполняется в обработчике событий Closing главной формы.В следующем примере Visual C# показан вызов метода Save.

Properties.Settings.Default.Save();

В разделе Практическое руководство. Создание параметров приложения с помощью конструктора содержится конкретный пример, как создать новые настройки приложений и связать их со свойствами формы.Дополнительные общие сведения о доступе к параметрам приложений с помощью класса Settings содержатся в разделе Общие сведения о параметрах приложений.

См. также

Основные понятия

Доступ к параметрам приложения (Visual Basic)