首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Effective C# 原則 37:使用標準組態機制

     編輯:關於C語言

組態儲存演進與最佳實踐

INI 檔結構受限、登錄表寫入需管理員權限且風險高。.NET 提供標準組態位置:應用程式專屬、受限使用者權限下也能運作。

應用程式組態檔

  • 唯讀設定存放於 XML 組態檔(app.config/web.config),<appSettings> 區段供自訂鍵值對。
  • ASP.NET 支援多層 web.config 繼承(Machine.config → 應用程式 → 子虛擬目錄),就近者優先。
  • 桌面應用每個應用程式域一個組態檔(AppName.exe.config)。

使用者設定:XML 序列化至正確資料夾

組態檔無寫入 API,不宜存儲使用者可變設定。建議定義可序列化結構,以 XmlSerializer 存檔:

[Serializable]
public struct GlobalSettings { /* 公用屬性 */ }

XmlSerializer ser = new XmlSerializer(typeof(GlobalSettings));
TextWriter wr = new StreamWriter("data.xml");
ser.Serialize(wr, myGlobalSettings);
wr.Close();

XML 格式易讀、易剖析、易除錯,可選擇性加密。

三種儲存位置

Environment.SpecialFolder用途預設路徑範例
CommonApplicationData全機器所有使用者共用(如資料庫連線字串)C:\Documents and Settings\All Users\Application Data
ApplicationData目前使用者,網路漫遊(如個人化設定)C:\Documents and Settings\<User>\Application Data
LocalApplicationData目前使用者、本機專屬(如視窗位置、解析度相關)C:\Documents and Settings\<User>\Local Settings\Application Data

使用 Environment.GetFolderPath() 取得路徑,再附加公司/產品/版本子目錄。Application 類別提供 LocalAppDataPath、UserDataPath、LocalUserDataPath 便利屬性。

嚴禁寫入 Program Files 或 Windows 目錄

這些目錄需高權限,一般使用者無法寫入。正確放置設定檔能兼顧安全性與使用者隱私感。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved