Общие сведения о параметрах приложенийApplication Settings Overview

В этом разделе описывается создание и хранение параметров приложения и пользователей.This topic discusses how to create and store settings data on behalf of your application and your users.

Параметры приложения в Windows Forms позволяют легко создавать, хранить и поддерживать настраиваемые приложения и параметры пользователей на клиентском компьютере.The Application Settings feature of Windows Forms makes it easy to create, store, and maintain custom application and user preferences on the client computer. С помощью параметров приложения Windows Forms можно хранить не только данные приложения, например строки подключений к базам данных, но и пользовательские данные, такие как предпочтения пользователя приложения.With Windows Forms application settings, you can store not only application data such as database connection strings, but also user-specific data, such as user application preferences. Используя Visual Studio или настраиваемый управляемый код, можно создавать новые параметры, читать их и записывать на диск, связывать их со свойствами в формах и проверять данные параметров до загрузки и сохранения.Using Visual Studio or custom managed code, you can create new settings, read them from and write them to disk, bind them to properties on your forms, and validate settings data prior to loading and saving.

Параметры приложения позволяют разработчикам сохранять состояние в своем приложении с помощью очень небольшого объема пользовательского кода и заменяют динамические свойства в предыдущих версиях .NET Framework.Application settings enables developers to save state in their application using very little custom code, and is a replacement for dynamic properties in previous versions of the .NET Framework. Параметры приложения содержат много улучшений по сравнению с динамическими свойствами, которые доступны только для чтения. Кроме того, в динамических свойствах используется позднее связывание, и для них требуется дополнительное программирование.Application settings contains many improvements over dynamic properties, which are read-only, late-bound, and require more custom programming. Классы динамических свойств были сохранены в .NET Framework 2,0, но они просто являются классами оболочки, которые тонко заключают классы параметров приложения.The dynamic property classes have been retained in .NET Framework 2.0, but they are just shell classes that thinly wrap the application settings classes.

Что такое параметры приложенияWhat Are Application Settings?

Приложениям Windows Forms часто требуются важные для их выполнения данные, которые, однако, нежелательно включать непосредственно в код приложения.Your Windows Forms applications will often require data that is critical to running the application, but which you do not want to include directly in the application's code. Если приложение использует веб-службу или сервер базы данных, эти сведения можно хранить в отдельном файле, чтобы в будущем была возможность изменить их без перекомпиляции.If your application uses a Web Service or a database server, you may want to store this information in a separate file, so that you can change it in the future without re-compiling. Аналогичным образом приложению может потребоваться сохранить данные, относящиеся к текущему пользователю.Similarly, your applications may require storing data that is specific to the current user. В большинстве приложений, например, применяются пользовательские предпочтения, определяющие внешний вид и поведение приложения.Most applications, for example, have user preferences that customize the application's appearance and behavior.

Параметры приложения отвечают обеим потребностям, предоставляя простой способ хранения параметров приложения и пользователей на клиентском компьютере.Application settings addresses both needs by providing an easy way to store both application-scoped and user-scoped settings on the client computer. С помощью Visual Studio или редактора кода можно определить значение параметра, указав его имя, тип данных и область действия (приложение или пользователь).Using Visual Studio or a code editor, you define a setting for a given property by specifying its name, data type, and scope (application or user). Вы можете даже поместить связанные параметры в именованные группы для повышения простоты и удобочитаемости кода.You can even place related settings into named groups for easier use and readability. После определения эти параметры сохраняются и считываются обратно в память автоматически во время выполнения.Once defined, these settings are persisted and read back into memory automatically at run time. Подключаемая архитектура позволяет изменять механизм сохранения, однако по умолчанию используется локальная файловая система.A pluggable architecture enables the persistence mechanism to be changed, but by default, the local file system is used.

Параметры приложения работают путем сохранения данных в формате XML в различных файлах конфигурации (CONFIG-файлах) в зависимости от того, что является областью действия параметра — приложение или пользователь.Application settings works by persisting data as XML to different configuration (.config) files, corresponding to whether the setting is application-scoped or user-scoped. В большинстве случаев параметры приложения доступны только для чтения. Так как они содержат сведения для программы, обычно их не нужно перезаписывать.In most cases, the application-scoped settings are read-only; because they are program information, you will typically not need to overwrite them. Параметры пользователей, напротив, можно и считывать, и записывать во время выполнения, даже если приложение работает в режиме частичного доверия.By contrast, user-scoped settings can be read and written safely at run time, even if your application runs under partial trust. Подробнее о частичном доверии см. в разделе Общие сведения о безопасности в Windows Forms.For more information about partial trust, see Security in Windows Forms Overview.

Параметры хранятся в виде XML-фрагментов в файлах конфигурации.Settings are stored as XML fragments in configuration files. Параметры приложения представлены элементом <application.Settings> . Обычно они размещаются в файле app.exe.config, где app — имя основного исполняемого файла.Application-scoped settings are represented by the <application.Settings> element, and generally are placed in app.exe.config, where app is the name of your main executable file. Параметры пользователей представлены элементом <userSettings> и помещаются в файле user.config, где user — имя пользователя, запустившего приложение.User-scoped settings are represented by the <userSettings> element and are placed in user.config, where user is the user name of the person currently running the application. Файл app.exe.config необходимо развернуть вместе с приложением. Архитектура параметров создает файлы user.config по запросу, когда приложение в первый раз сохраняет параметры для этого пользователя.You must deploy the app.exe.config file with your application; the settings architecture will create the user.config files on demand the first time the application saves settings for that user. Вы можете также определить блок <userSettings> в файле app.exe.config, чтобы предоставить значения по умолчанию для параметров пользователя.You can also define a <userSettings> block within app.exe.config to provide default values for user-scoped settings.

Пользовательские элементы управления могут сохранять собственные параметры с помощью реализации интерфейса IPersistComponentSettings , который предоставляет метод SaveSettings .Custom controls can also save their own settings by implementing the IPersistComponentSettings interface, which exposes the SaveSettings method. Элемент управления ToolStrip Windows Forms реализует этот интерфейс, чтобы сохранить положение панелей инструментов и их элементов между сеансами приложения.The Windows Forms ToolStrip control implements this interface to save the position of toolbars and toolbar items between application sessions. Дополнительные сведения о пользовательских элементах управления и параметрах приложения см. в разделе Application Settings for Custom Controls.For more information about custom controls and application settings, see Application Settings for Custom Controls.

Ограничения параметров приложенияLimitations of Application Settings

Нельзя использовать параметры приложения в неуправляемом приложении, где размещается .NET Framework.You cannot use application settings in an unmanaged application that hosts the .NET Framework. Параметры не будут работать в таких средах, как надстройки Visual Studio, C++ для Microsoft Office, элементы управления, размещенные в Internet Explorer, или надстройки и проекты Microsoft Outlook.Settings will not work in such environments as Visual Studio add-ins, C++ for Microsoft Office, control hosting in Internet Explorer, or Microsoft Outlook add-ins and projects.

В настоящее время нельзя выполнить привязку к некоторым свойствам в Windows Forms.You currently cannot bind to some properties in Windows Forms. Наиболее важным примером является свойство ClientSize , так как привязка к этому свойству вызовет непредсказуемое поведение во время выполнения.The most notable example is the ClientSize property, as binding to this property would cause unpredictable behavior at run time. Как правило, такого рода проблем можно избежать путем программного сохранения и загрузки этих параметров.You can usually work around these issues by saving and loading these settings programmatically.

Параметры приложения не имеют встроенных средств для автоматического шифрования информации.Application settings has no built-in facility for encrypting information automatically. Никогда не следует хранить конфиденциальные данные, такие как пароли к базам данных, в виде открытого текста.You should never store security-related information, such as database passwords, in clear text. Если требуется хранить такие сведения, то разработчик приложения обязан обеспечить надлежащую безопасность хранения.If you want to store such sensitive information, you as the application developer are responsible for making sure it is secure. Если нужно хранить строки подключений, рекомендуется использовать встроенную систему безопасности Windows и не прибегать к таким средствам, как жесткое программирование паролей в URL-адресах.If you want to store connection strings, we recommend that you use Windows Integrated Security and not resort to hard-coding passwords into the URL. Дополнительные сведения см. в разделе Управление доступом для кода и ADO.NET.For more information, see Code Access Security and ADO.NET.

Начало работы с параметрами приложенияGetting Started with Application Settings

Если используется Visual Studio, вы можете определить параметры в конструкторе Windows Forms с помощью свойства (ApplicationSettings) в окне Свойства .If you use Visual Studio, you can define settings within the Windows Forms Designer using the (ApplicationSettings) property in the Properties window. При таком определении параметров Visual Studio автоматически создает пользовательский управляемый класс-оболочку, связывающий каждый параметр со свойством класса.When you define settings this way, Visual Studio automatically creates a custom managed wrapper class which associates each setting with a class property. Visual Studio также обеспечивает привязку параметра к свойству в форме или элементе управления таким образом, чтобы параметры элемента управления автоматически восстанавливались при отображении содержащей его формы и автоматически сохранялись при закрытии формы.Visual Studio also takes care of binding the setting to a property on a form or control so that the control's settings are restored automatically when its form is displayed, and saved automatically when the form is closed.

Если требуется более детальное управление параметрами, можно определить собственный класс-оболочку параметров приложения.If you want more detailed control over your settings, you can define your own custom applications settings wrapper class. Для этого нужно создать класс, производный от ApplicationSettingsBase, добавить свойства, соответствующие каждому параметру, и применить к ним специальные атрибуты.This is accomplished by deriving a class from ApplicationSettingsBase, adding a property that corresponds to each setting, and applying special attributes to these properties. Дополнительные сведения о создании классов-оболочек см. в разделе Application Settings Architecture.For details about creating wrapper classes, see Application Settings Architecture.

Вы можете также использовать класс Binding для программной привязки параметров к свойствам в формах и элементах управления.You can also use the Binding class to bind settings programmatically to properties on forms and controls.

См. такжеSee also