HOW TO:建立應用程式設定
使用 Managed 程式碼,可以讓您建立新的應用程式設定並將它們繫結至表單或表單控制項上的屬性,因此這些設定會在執行階段自動載入及儲存。
在以下程序中,您將手動建立一個衍生自 ApplicationSettingsBase 的包裝函式類別 (Wrapper Class)。 並且在這個類別中為每個想要公開的應用程式設定加入公開存取屬性。
您也可以在 Visual Studio 設計工具中使用最少的程式碼執行這個程序。 如需詳細資訊,請參閱HOW TO:使用設計工具建立應用程式設定 和 HOW TO:使用設計工具建立應用程式設定 和 HOW TO:使用設計工具建立應用程式設定 和 HOW TO:使用設計工具建立應用程式設定 和 如何:使用設計工具建立應用程式設定.
若要以程式設計方式建立新應用程式設定
將新類別加入至您的專案中,並且重新命名。 在這個程序中,我們將呼叫 MyUserSettings 類別。 變更類別定義,使該類別衍生自 ApplicationSettingsBase。
在包裝函式類別上為每一個所需的應用程式設定定義屬性,並且依據設定的範圍使用 ApplicationScopedSettingAttribute 或 UserScopedSettingAttribute 來套用該屬性。 如需設定範圍的詳細資訊,請參閱應用程式設定概觀。 現在,您的程式碼應該具有如下的外觀:
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
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; } } }
在應用程式中建立此包裝函式類別的執行個體。 一般來說它將會是主要表單的 Private 成員。 類別完成定義後,您現在需要將它繫結至屬性;在這個案例中即是表單的 BackColor 屬性。 您可以在表單的 Load 事件處理常式中完成這個動作。
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
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
//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(); }
您現在成功建立了新的應用程式設定並且已將它繫結至指定屬性。
安全性
預設的設定提供者,LocalFileSettingsProvider,將資訊以純文字格式保存於組態檔。 目前使用者之作業系統所提供的安全性到檔案存取安全性都會因此受到限制。 所以必須格外注意儲存於組態檔中的資訊。 例如,應用程式設定的常見用法之一是儲存指向應用程式資料存放區的連接字串。 但是,基於安全性的考量,這種字串不應包含密碼。 如需連接字串的詳細資訊,請參閱 SpecialSetting。