如何:创建应用程序设置
更新:2007 年 11 月
使用托管代码,可以创建新应用程序设置并将它们绑定到窗体上的属性或窗体的控件上的属性,以便在运行时自动加载和保存这些设置。
在下面的过程中,您将手动创建一个派生自 ApplicationSettingsBase 的包装类。然后为每个要公开的应用程序设置,向此类添加一个公共可访问属性。
您也可以在 Visual Studio 设计器中使用尽可能少的代码执行此过程。 有关更多信息,请参见如何:使用设计器创建应用程序设置 和如何:使用设计器创建应用程序设置 和如何:使用设计器创建应用程序设置 和如何:使用设计器创建应用程序设置 和如何:使用设计器创建应用程序设置.
以编程方式创建新的应用程序设置
向项目中添加一个新类,然后重命名它。在下面的过程中,我们将此类称为 MyUserSettings。更改该类的定义,以便该类从 ApplicationSettingsBase 派生。
在此包装类上为每个所需应用程序设置定义一个属性,并根据设置的范围将 ApplicationScopedSettingAttribute 或 UserScopedSettingAttribute 应用到该属性。有关设置范围的更多信息,请参见 应用程序设置概述。至此,您的代码应类似于:
Imports System.Configuration Public Class MyAppSettings 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
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; } } }
在应用程序中创建此包装类的实例。它通常是主窗体的一个私有成员。定义了类后,您需要将它绑定到属性;在本例中,该属性为窗体的 BackColor 属性。可以在窗体的 Load 事件处理程序中完成此操作。
Dim Mus As MyAppSettings Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Mus = New MyAppSettings() Mus.BackgroundColor = Color.AliceBlue Me.DataBindings.Add(New Binding("BackColor", Mus, "BackgroundColor")) End Sub
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")); }
如果您要提供在运行时更改设置的方法,则需要在窗体关闭时,将用户的当前设置保存到磁盘中,否则这些更改将丢失。
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Mus.Save() End Sub
您现在已成功创建了新的应用程序设置,并已将其绑定到指定的属性。
安全性
默认设置提供程序 LocalFileSettingsProvider 以纯文本形式将信息保持在配置文件中。这会将安全性局限为操作系统为当前用户提供的文件访问安全性。因此,必须谨慎对待存储在配置文件中的信息。例如,应用程序设置的一个常见用途是存储指向应用程序数据存储区的连接字符串。但是,由于安全问题,这样的字符串不应包含密码。有关连接字符串的更多信息,请参见 SpecialSetting。