在開發中,相信大家經常都要和配置文件打交道,不管是應用程序的App.config文件,或者是Web程序的Web.config文件。今天閒來無事,突然想到一直只是在用*.config文件進行配置參數,卻從未做過自定義配置節點的開發,稍微研究了一下,寫下此文記錄學習心得。
先介紹一下本文中涉及到的配置文件分別為 App.config 和 Collector.config。
App.config
Collector.config
把 Collector.config 的配置節點從 App.config 中分離出來,主要是為了演示 configSource 的使用。 configSource 只在自定義的 section 節點中可用。
開發自定義配置節點主要涉及到如下幾個類:
CollectorSectionGroup 繼承自 ConfigurationSectionGroup 對應的節點為 以及 ,主要用於定義自定義節點集合,代碼如下所示:
[ConfigurationProperty(, IsRequired = { Sections[] }
BackupSection 繼承自 ConfigurationSection 對應的節點為 以及 ,主要用於定義自定義節點。類中定義了一個 Path 屬性以及TriggedTimes 元素集合屬性,分別對應節點為 和,代碼如下所示:
[ConfigurationProperty(, IsRequired = { [ { [] = [ConfigurationProperty(, IsRequired = [ConfigurationCollection( { [] { [] = }
TriggedTimeCollection 繼承自 ConfigurationElementCollection 對應的節點為 ,代碼如下所示:
}
TriggedTime 繼承自 ConfigurationElement 對應節點為 ,代碼如下所示:
[ConfigurationProperty(, IsRequired = { (TimeSpan)[ { [] = }
演示代碼主要演示了顯示
Main( configuration = sectionGroup = configuration.GetSectionGroup() (sectionGroup != sectionGroup.BackupSection.Path = configuration = sectionGroup = (CollectorSectionGroup)configuration.GetSectionGroup( (sectionGroup != (TriggedTime triggedTime Console.WriteLine( }
如果需要對 Web 應用程序的 Web.config 配置信息進行修改,與 App.cnfig 不同的是,需要使用 WebConfigurationManager 類而不是 ConfigurationManager 類,代碼如下所示:
configuration = WebConfigurationManager.OpenWebConfiguration( settings = settings.Remove( settings.Add( configuration.Save();
文中涉及代碼可點擊此處進行下載。