Общие сведения о параметрах приложения
В этой статье описывается создание и хранение данных параметров от имени приложения и пользователей.
Функция параметров приложения Windows Forms упрощает создание, хранение и обслуживание пользовательских настроек приложения и пользователей на клиентском компьютере. С помощью параметров приложения Windows Forms можно хранить не только данные приложения, такие как строки подключения к базе данных, но и пользовательские данные, такие как предпочтения приложения пользователя. С помощью Visual Studio или пользовательского управляемого кода можно создавать новые параметры, считывать их из диска и записывать их на диск, привязывать их к свойствам в формах и проверять данные параметров перед загрузкой и сохранением.
Параметры приложения позволяют разработчикам сохранять состояние в приложении с использованием очень мало пользовательского кода и является заменой динамических свойств в предыдущих версиях .NET Framework. Параметры приложения содержат множество улучшений по динамическим свойствам, которые доступны только для чтения, поздно привязаны и требуют больше пользовательского программирования. Классы динамических свойств были сохранены в .NET Framework 2.0, но они просто классы оболочки, которые тонко упаковывают классы параметров приложения.
Что такое параметры приложения
Приложения Windows Forms часто требуют данных, критически важных для запуска приложения, но которые не хотят включать непосредственно в код приложения. Если приложение использует веб-службу или сервер базы данных, может потребоваться сохранить эти сведения в отдельном файле, чтобы изменить его в будущем без повторной компиляции. Аналогичным образом приложения могут требовать хранения данных, относящихся к текущему пользователю. Например, большинство приложений имеют пользовательские предпочтения, которые настраивают внешний вид и поведение приложения.
Параметры приложения определяют оба требования, предоставляя простой способ хранения параметров в области приложения и пользовательских параметров на клиентском компьютере. С помощью Visual Studio или редактора кода необходимо определить параметр для данного свойства, указав его имя, тип данных и область (приложение или пользователь). Вы даже можете поместить связанные параметры в именованные группы для упрощения использования и удобства чтения. После определения эти параметры сохраняются и считываются в память автоматически во время выполнения. Подключаемая архитектура позволяет изменять механизм сохраняемости, но по умолчанию используется локальная файловая система.
Параметры приложения работают путем сохранения данных в формате XML в разные файлы конфигурации (.config) с учетом того, является ли параметр областью приложения или областью действия пользователя. В большинстве случаев параметры области приложения доступны только для чтения; так как они являются сведениями о программе, обычно их не нужно перезаписывать. В отличие от этого, параметры с областью видимости пользователя можно безопасно считывать и записывать во время выполнения, даже если приложение работает с ограниченным уровнем доверия. Дополнительные сведения о частичном доверии см. в статье Security in Windows Forms Overview.
Параметры хранятся в виде фрагментов XML в файлах конфигурации. Параметры с областью приложения представлены элементом <applicationSettings>
и обычно помещаются в приложения.exe.config, где приложения — имя основного исполняемого файла. Параметры с пользовательской областью действия представлены элементом <userSettings>
и размещаются в user.config. Необходимо развернуть приложение вместе с файлом.exe.config; архитектура параметров создаст файл user.config по мере необходимости при первом сохранении параметров для этого пользователя. Вы также можете определить блок <userSettings>
в приложении .exe.config, чтобы предоставить значения по умолчанию для настроек, относящихся к пользователю.
Пользовательские элементы управления также могут сохранять собственные параметры, реализуя интерфейс IPersistComponentSettings, который предоставляет метод SaveSettings. Элемент управления Windows Forms ToolStrip реализует этот интерфейс для сохранения положения панелей инструментов и элементов панели инструментов между сеансами приложений. Дополнительные сведения о пользовательских элементах управления и настройках приложения см. в разделе Настройки приложения для пользовательских элементов управления.
Где хранятся пользовательские параметры
Поставщик по умолчанию, LocalFileSettingsProvider, сохраняет пользовательские параметры в папке LocalApplicationData. Если эта папка недоступна, используется папка ApplicationData. Вложенная папка, предназначенная для конкретного приложения, создается для хранения файла пользовательских настроек. Имя этой папки основано на трех атрибутах основной сборки приложения:
- CompanyNameсборки.
- Хэшированное значение на основе двух частей информации:
- Номер FriendlyNameсборки. Если
FriendlyName
недоступно, используется ProductName. - Если StrongName сборки доступен, используется , в противном случае используется абсолютный путь к папке для сборки.
- Номер FriendlyNameсборки. Если
- Строка AssemblyName.Version.
Если какие-либо из предыдущих сведений о сборке изменяются, пользовательские настройки теряются, поскольку создается имя новой вложенной папки. Например, если выпущена новая версия приложения и значение AssemblyName.Version
отличается от предыдущей версии приложения, изменяется имя вложенной папки, используемой для хранения параметров, относящихся к области пользователя. Если параметры пользователя должны сохраняться между выпусками приложений, создайте настраиваемый поставщик параметров. Для получения дополнительной информации см. Поставщики пользовательских настроек.
Ограничения параметров приложения
Параметры приложения нельзя использовать в неуправляемом приложении, на котором размещена платформа .NET Framework. Параметры не будут работать в таких средах, как надстройки Visual Studio, C++ для Microsoft Office, хостинг элементов управления в Internet Explorer или надстройки и проекты Microsoft Outlook.
В настоящее время нельзя связать некоторые свойства в Windows Forms. Наиболее заметным примером является свойство ClientSize, так как привязка к этому свойству приведет к непредсказуемому поведению во время выполнения. Обычно эти проблемы можно обойти, сохранив и загрузив эти параметры программным способом.
Параметры приложения не имеют встроенного средства для автоматического шифрования информации. Никогда не следует хранить сведения, связанные с безопасностью, такие как пароли базы данных, в чистом тексте. Если вы хотите хранить такие конфиденциальные сведения, вы, как разработчик приложений несете ответственность за обеспечение безопасности. Если вы хотите хранить строки подключения, рекомендуется использовать встроенную безопасность Windows и не прибегать к жесткому кодированию паролей в URL-адрес. Дополнительные сведения см. в разделе Безопасность доступа к коду и ADO.NET.
Начало работы с параметрами приложения
При использовании Visual Studio можно определить параметры в конструкторе Windows Forms с помощью свойства (ApplicationSettings) в окне Свойств. При определении параметров таким образом Visual Studio автоматически создает пользовательский класс управляемой оболочки, который связывает каждый параметр со свойством класса. Visual Studio также заботится о привязке параметра к свойству формы или элемента управления, чтобы параметры элемента управления восстанавливались автоматически при отображении его формы и сохранялись автоматически при закрытии формы.
Если требуется более подробный контроль над параметрами, можно определить собственный класс оболочки параметров пользовательских приложений. Это достигается путем получения класса из ApplicationSettingsBase, добавления свойства, соответствующего каждому параметру, и применения специальных атрибутов к этим свойствам. Дополнительные сведения о создании оболочечных классов см. в архитектуре параметров приложения .
Можно также использовать класс Binding для программной привязки параметров к свойствам форм и элементов управления.
См. также
- ApplicationSettingsBase
- SettingsProvider
- LocalFileSettingsProvider
- IPersistComponentSettings
- Практическое руководство. Проверка параметров приложения
- управление параметрами приложения (.NET)
- Как: Читать настройки во время выполнения с помощью C#
- О настройках приложения и настройках пользователя
- Архитектура настроек приложения
- Настройки приложения для пользовательских элементов управления
.NET Desktop feedback