Практическое руководство. Создание параметров приложенияHow to: Create Application Settings

С помощью управляемого кода можно создавать параметры приложения и привязывать их к свойствам формы или ее элементов управления, чтобы эти параметры загружались и сохранялись автоматически во время выполнения.Using managed code, you can create new application settings and bind them to properties on your form or your form's controls, so that these settings are loaded and saved automatically at run time.

В представленной ниже процедуре вручную создается класс-оболочка, производный от класса ApplicationSettingsBase.In the following procedure, you manually create a wrapper class that derives from ApplicationSettingsBase. К этому классу добавляется открытое свойство для каждого параметра приложения, который требуется предоставить.To this class you add a publicly accessible property for each application setting that you want to expose.

Эту процедуру можно также выполнить с помощью минимального объема кода в конструкторе Visual Studio.You can also perform this procedure using minimal code in the Visual Studio designer. Также см. раздел Как Создание параметров приложения с помощью конструктора.Also see How to: Create Application Settings Using the Designer.

Создание параметров приложения программными средствамиTo create new Application Settings programmatically

  1. Добавьте в проект новый класс и переименуйте его.Add a new class to your project, and rename it. Для выполнения этой процедуры мы назовем этот класс MyUserSettings.For this procedure, we will call this class MyUserSettings. Измените определение класса так, чтобы он стал производным от ApplicationSettingsBase.Change the class definition so that the class derives from ApplicationSettingsBase.

  2. Определите в этом классе-оболочке свойство для каждого требуемого параметра приложения и примените его с атрибутом ApplicationScopedSettingAttribute или UserScopedSettingAttribute в зависимости от области действия параметра.Define a property on this wrapper class for each application setting you require, and apply that property with either the ApplicationScopedSettingAttribute or UserScopedSettingAttribute, depending on the scope of the setting. Дополнительные сведения об области действия параметров см. в разделе Общие сведения о параметрах приложения.For more information about settings scope, see Application Settings Overview. На этом этапе код должен выглядеть так:By now, your code should look like this:

    using System;
    using System.Configuration;
    using System.Drawing;
    
    public class MyUserSettings : ApplicationSettingsBase
    {
        [UserScopedSetting()]
        [DefaultSettingValue("white")]
        public Color BackgroundColor
        {
            get
            {
                return ((Color)this["BackgroundColor"]);
            }
            set
            {
                this["BackgroundColor"] = (Color)value;
            }
        }
    }
    
    Imports System.Configuration
    
    Public Class MyUserSettings
        Inherits ApplicationSettingsBase
        <UserScopedSetting()> _
        <DefaultSettingValue("white")> _
        Public Property BackgroundColor() As Color
            Get
                BackgroundColor = Me("BackgroundColor")
            End Get
    
            Set(ByVal value As Color)
                Me("BackgroundColor") = value
            End Set
        End Property
    End Class
    
  3. Создайте экземпляр этого класса-оболочки в приложении.Create an instance of this wrapper class in your application. Как правило, он является закрытым членом главной формы.It will commonly be a private member of the main form. Определив класс, нужно привязать его к свойству, в данном случае к свойству BackColor формы.Now that you have defined your class, you need to bind it to a property; in this case, the BackColor property of your form. Это можно сделать в вашей форме Load обработчик событий.You can accomplish this in your form's Load event handler.

    MyUserSettings mus;
    
    private void Form1_Load(object sender, EventArgs e)
    {
        mus = new MyUserSettings();
        mus.BackgroundColor = Color.AliceBlue;
        this.DataBindings.Add(new Binding("BackColor", mus, "BackgroundColor"));
    }
    
    Dim Mus As MyUserSettings
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Mus = New MyUserSettings()
        Mus.BackgroundColor = Color.AliceBlue
        Me.DataBindings.Add(New Binding("BackColor", Mus, "BackgroundColor"))
    End Sub
    
  4. Если вы предоставляете возможность изменения параметров во время выполнения, необходимо сохранять текущие параметры пользователя на диск при закрытии формы, иначе изменения будут потеряны.If you provide a way to change settings at run time, you will need to save the user's current settings to disk when your form closes, or else these changes will be lost.

    //Make sure to hook up this event handler in the constructor!
    //this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);
        void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            mus.Save();
        }
    
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Mus.Save()
    End Sub
    

    Теперь новый параметр приложения успешно создан и связан с указанным свойством.You have now successfully created a new application setting and bound it to the specified property.

Безопасность платформы .NET Framework.NET Framework Security

Поставщик параметров по умолчанию, LocalFileSettingsProvider, сохраняет сведения в файлах конфигурации в виде обычного текста.The default settings provider, LocalFileSettingsProvider, persists information to configuration files as plain text. В результате безопасность зависит от уровня разрешений на доступ к файлу, предоставляемого операционной системой текущему пользователю.This limits security to the file access security provided by the operating system for the current user. Поэтому при хранении информации в файлах конфигурации необходимо соблюдать осторожность.Because of this, care must be taken with the information stored in configuration files. Например, параметры приложения часто используются для хранения строк подключений, которые указывают на хранилище данных приложения.For example, one common use for application settings is to store connection strings that point to the application's data store. Однако в целях безопасности в таких строках не должны содержаться пароли.However, because of security concerns, such strings should not include passwords. Подробнее о строках подключения см. в разделе SpecialSetting.For more information about connection strings, see SpecialSetting.

См. такжеSee also