簡體   English   中英

C#App.config與設置文件

[英]C# App.config vs Settings File

這可能聽起來像一個微不足道的問題,但我簡要地查看了網頁,我發現app.config基本上是一個舊的機制,用於存儲應用程序的應用程序密鑰/數據對。

我想知道的是,我們(作為.NET開發人員)會選擇在Settings file使用app.config嗎?

- 有人請提供一些優點和缺點,以便我們可以正確使用它們。

再次感謝

桌面應用程序的App.config和Web應用程序的Web.config是.NET配置系統的一部分。 它們主要用於控制與我們的應用程序相關的.NET框架設置。 這些配置設置為程序集版本的替換(部分<assemblyBinding>),.NET框架版本的替換(<startup>)等(有關完整的app.config架構,請參閱msdn 。)一節專門用於自定義設置應用程序開發人員(<appSettings>)。 還可以創建自定義部分。 因此,當我們需要存儲設置時,我們可以捎帶app.config或創建我們自己的單獨配置文件。

以下是使用app.config的優缺點:

  1. Pro:.NET中已經有一個標准的API來從appSettings部分讀取設置。 如果您只需要幾個配置設置,那么使用這個現成的API要比開發和測試自己的類來讀取配置文件容易得多。 此外,app.config文件已經包含在VS項目中。

  2. Pro:有一個標准的machine.config / app.config層次結構。 如果您計划可以在整個機器范圍內設置並覆蓋或保留各個應用程序的設置,則應使用app.config。

  3. Pro / Con:App.config在運行時緩存。 如果您在應用程序運行時預計會對其進行更新,則需要專門請求刷新配置文件的某些部分。 對於web.config,當文件中的內容發生變化時,Web應用程序會自動重新啟動。 這很方便。

  4. Con:app.config與.exe文件存儲在同一目錄中。 通常它將在C:\\ Program Files的子文件夾中。 此目錄在Windows 7中受到額外保護,無法編寫。 您需要成為Administrators組的成員才能在那里寫入,如果您在控制面板中的UAC(用戶訪問控制)級別未設置為0(通常不是),操作系統將要求您確認寫入c:\\程序文件。 因此,沒有管理員權限的用戶將無法在app.config中更改配置。 以編程方式更改設置也是如此:如果在Windows 7上沒有管理員用戶運行,則嘗試編寫app.config時應用程序將出現異常。您自己的配置文件通常會轉到C:\\ ProgramData \\或c:\\ Users子文件夾(在Windows 7上)。 這些位置對於用戶或程序的寫入更友好。

  5. Con:如果用戶編輯了您的app.config文件並且意外損壞了它,整個應用程序將不會以一些模糊的錯誤消息啟動。 如果您的單獨配置文件已損壞,您將能夠提供更詳細的錯誤消息。

總之:app.config為您提供了更簡單(更快速的開發)方法,主要適用於只讀設置。 自定義設置文件為您提供更多自由(存儲文件的位置,驗證/錯誤處理,其架構的更多靈活性),但在開發期間需要更多工作。

你有它倒退,設置文件(或最初調用的ini文件)是用於在Windows 95之前保存應用程序設置(鍵/值對)的機制。隨着Windows 95的發布,建議應用程序設置為移入Windows注冊表(這證明是有問題的,因為如果你搞砸了你的注冊表,你的Windows可能無法再啟動)。

.config文件與.Net一起發揮作用。 與簡單的鍵/值對相比,XML格式允許更動態和復雜的設置配置。

現代用戶/設置文件是.config文件的XML擴展(在特定條件下可以覆蓋.config中某些設置的設置)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM