管理應用程式設定 (.NET)
應用程式設定可讓您動態儲存應用程式資訊。 使用應用程式設定時,您可以使用用戶端電腦來儲存不應該包含在運行時間的應用程式程式代碼中的資訊。 應用程式設定可以包含連接字串、用戶喜好設定等等。
注意
應用程式設定會取代舊版 Visual Studio 中使用的動態屬性。
每個應用程式設定都必須有唯一的名稱。 名稱可以是字母、數位或底線的任何組合。 名稱不能以數字開頭,而且不能有空格。 名稱會透過 Name
屬性變更。
應用程式設定可以儲存為串行化為 XML 的任何數據類型,或具有實作 ToString
/FromString
的 TypeConverter
。 最常見的類型是 String
、Integer
和 Boolean
。 您也可以將值儲存為 Color、Object或 作為連接字串。
應用程式設定中也有一個值。 此值是使用 Value 屬性來設定,而且必須符合設定的數據類型。
此外,應用程式設定可以在設計時間系結至窗體或控件的屬性。
根據範圍,有兩種類型的應用程式設定:
應用程式範圍的設定 可用於 Web 服務或資料庫連接字串的 URL 等資訊。 這些值與應用程式相關聯。 因此,用戶無法在運行時間變更它們。
用戶範圍設定 可用於保存表單或字型喜好設定的最後一個位置等資訊。 用戶可以在運行時間變更這些值。
您可以使用 Scope 屬性來變更設定的類型。
項目系統會將應用程式設定儲存在兩個 XML 檔案中:
當您建立第一個應用程式設定時,會在設計時間建立 app.config 檔案
當執行應用程式的用戶變更任何使用者設定的值時,會在運行時間建立 user.config 檔案
除非應用程式特別呼叫方法來這樣做,否則用戶設定中的變更不會寫入磁碟。
在設計時間建立應用程式設定
在設計時間,您可以透過兩種方式建立應用程式設定:
使用 項目設計工具的 設定 頁面。
使用 [屬性] 視窗來處理表單或控制項,這樣您就可以將設定綁定到屬性。
當您建立應用程式範圍的設定時(例如,資料庫連接字串或伺服器資源的參考),Visual Studio 會以 <applicationSettings>
標記將它儲存在 app.config 檔案中。 連接字串會儲存在 <connectionStrings>
標籤下。
當您建立用戶範圍設定時(例如,預設字型、首頁或視窗大小),Visual Studio 會以 <userSettings>
標籤將它儲存在 app.config 檔案中。
重要
當您將連接字串儲存在 app.config時,應該採取預防措施,避免在連接字串中顯示敏感性資訊,例如密碼或伺服器路徑。
如果您從外部來源取得連接字串資訊,例如提供其使用者識別碼和密碼的使用者,請確定您用來建構連接字串的值不包含變更連線行為的其他連接字串參數。
注意
因為類別庫沒有組態檔模型,因此應用程式設定不適用於類別庫專案。 例外狀況是 Visual Studio Tools for Office Runtime DLL 專案,其可以有組態檔。
使用自訂的配置檔
您可以將自定義的設定檔新增至專案,方便管理設定群組。 單一檔案中包含的設定會被載入並整體儲存。 將設定儲存在個別的檔案中,以供經常使用且不常使用的群組節省載入和儲存設定的時間。
例如,您可以將 SpecialSettings.settings 檔案新增至專案。 雖然 SpecialSettings
類別未在 My
命名空間中公開,檢視程式代碼 可以讀取包含 Partial Class SpecialSettings
的自定義配置檔。
設定設計工具 會先搜尋項目系統所建立 Settings.settings 檔案。 這個 Settings.settings 檔案是 [項目設計工具] 顯示在 [設定] 索引卷標的預設檔案。Settings.settings 檔案位於 Visual Basic 專案的 My Project 資料夾中,以及 Visual C# 專案的 Properties 資料夾中。 項目設計工具 然後搜尋專案根資料夾中的其他配置檔。 因此,您應該將自定義配置檔放在該處。 如果您在專案中其他地方新增 .settings 檔案,項目設計工具 找不到檔案。
在 Visual Basic 中的運行時間存取或變更應用程式設定
在 Visual Basic 專案中,您可以使用 My.Settings
物件,在運行時間存取應用程式設定。 在 [設定] 頁面上,選取 [檢視程式碼] 按鈕以查看 Settings.vb 檔案內容。
Settings.vb 定義 Settings
類別,可讓您在設定類別上處理這些事件:
Settings.vb 中的 Settings
類別是部分類別,只顯示使用者擁有的程式代碼,而不是整個產生的類別。 如需使用 My.Settings
物件存取應用程式設定的詳細資訊,請參閱 Access 應用程式設定 (.NET Framework)。
使用者在運行時間變更的任何用戶範圍設定值,例如表單的位置,會儲存在 user.config 檔案中。 預設值仍會儲存在 app.config中。
如果在運行時間期間變更任何使用者範圍設定,例如在測試應用程式時,而且您想要將這些設定重設為預設值,請選取 [同步處理] 按鈕。
建議您使用 My.Settings
對象和預設 .settings 檔案來存取設定。 您可以使用 設定設計工具 將屬性指派給設定,此外,用戶設定也會在應用程式關機之前自動儲存。 不過,您的 Visual Basic 應用程式可以直接存取設定。 在此情況下,您必須存取 MySettings
類別,並使用專案根目錄中的自定義 .settings 檔案。 您必須在結束應用程式之前儲存使用者設定,就像對 C# 應用程式所做的一樣,如下一節所述。
在 C# 運行時存取或變更應用程式設定
在 Visual Basic 以外的語言,例如 C#,您必須直接存取 Settings
類別,如下列 Visual C# 範例所示。
Properties.Settings.Default.FirstUserSetting = "abc";
您必須明確呼叫這個包裝函式類別的 Save
方法,才能保存用戶設定。 您通常會在主要表單的 Closing
事件處理程式中執行此動作。 下列 C# 範例顯示對 Save
方法的呼叫。
Properties.Settings.Default.Save();
如需透過 Settings
類別存取應用程式設定的一般資訊,請參閱 應用程式設定概觀 (.NET Framework)。
將應用程式從 .NET Framework 移轉至 .NET
.NET Framework 會使用 app.config 檔案來載入應用程式的設定,例如連接字串和記錄提供者組態。 新式 .NET 會針對應用程式設定使用 appsettings.json 檔案。 若要深入瞭解如何將 app.config 檔案轉換成 appsettings.json,請參閱從 .NET Framework 升級至 .NET 之後,現代化。