Dot-Net

app.config 文件和 XYZ.settings 文件有什麼區別?

  • May 26, 2009

我實際上處於 .NET 相關內容的學習階段,並且正在探索如何保存應用程序。我最終編寫了自己的類,將設置保存在 XML 文件中,然後我發現 .NET 本身支持保存應用程序設置。

但我找到了兩種方法來做到這一點。當我在 Visual Studio 2008 中打開添加新項目對話框時,它提供了創建設置文件 (.settings) 或配置文件 (.config) 的選項。兩者之間有什麼區別,應該在什麼場景下使用它們?

更新:在 ASP.NET Core Land 中,不再通過其中任何一個管理配置 -請參閱 Travis Illig 的這篇精彩文章,其中 az 開啟Microsoft.Extension.ConfigurationMicrosoft.Extensions.Configuration.Binder它實際上是所有這些的超集


設置(來自 .settings 集和Configuration.AppSettings)儲存在 .config 文件中[以及許多其他內容]。

不同之處在於 .settings 的東西 [在 .NET 2.0 / VS2005 中添加] 在一組屬於一起的設置之上分層了一個強類型類,而Configuration.AppSettings只是讓您檢索字元串,強制您進行任何轉換,而不是有預設的概念。(配置類實際上已被分流到一個側面程序集中以反映這一點 - 如果需要,您需要顯式添加對 System.Configuration 的引用)。

將 .settings 添加到您的項目將導致添加一個 app.config 來容納設置(如果您還沒有設置)。每次更改組件/應用程序的設置列表時,都會自動生成讀取設置的類。

.Settings 的其他功能是能夠將某些設置指定為特定於使用者的設置(並且還可以通過一次呼叫保存使用者特定的設置)。

使用 .Settings 的最佳理由通常是您能夠通過遵循屬性的用法來清楚地辨識誰在使用程式碼庫中的哪個設置(並且每個集合都是 XML 文件中的一個單獨塊)。Configuration.appSettings在本質上更俱全域性 - 它只是一組屬性,您不知道哪個 DLL、子系統或類取決於特定的設置條目。有關更多資訊,請參閱Steven Smith的這篇博文。

最後,如果您對設置管理的了解還不夠多,那麼您不會因為完整性或大量的想法和角度而擊敗Rick Strahl 的這篇關於該主題的文章。

旁白:還有本文概述的ASP.NET vNext 配置內容,它非常靈活,提供了不同的配置設置管理角度。

引用自:https://stackoverflow.com/questions/909688