ASP.NET程式中的web.config文件中,在appSettings這個配置節中能夠保存一些配置,比如, 但是這些配置都是單個字元串信息,在某些情況下,無法做到靈活配置。 針對這種情況,使用.Net Framework提供的自定義系統配置方式來進行改善。自定義系統配置方式主要使用到以下幾個類: ...
ASP.NET程式中的web.config文件中,在appSettings這個配置節中能夠保存一些配置,比如,
1 <appSettings> 2 <add key="LogInfoProvider" value="Cookie" />//登錄信息保存方式 3 </appSettings>
但是這些配置都是單個字元串信息,在某些情況下,無法做到靈活配置。
針對這種情況,使用.Net Framework提供的自定義系統配置方式來進行改善。自定義系統配置方式主要使用到以下幾個類:
ConfigurationManager:通過該類能夠直接獲取Web.config的信息。
ConfigurationSection:表示配置文件中的一個配置節的信息。
ConfigurationElement:表示配置節中的單個配置項信息。
ConfigurationElementCollection:表示配置項的集合信息。
ConfigurationPropertyAttribute:對配置信息一些約束信息。
使用自定義配置信息,必須現在web.config配置文件的頂部進行配置聲明,否則系統無法識別該配置信息。如下所示:
1 <configuration> 2 <configSections> 3 <section name="TT.appConfiguration" type="TT.Infrastructure.Core.CustomConfiguration.ApplicationConfiguration, TT.Infrastructure.Core" /> 4 <section name="TT.connectionManager" type="TT.Infrastructure.Core.CustomConfiguration.DBConnectionConfiguration, TT.Infrastructure.Core" /> 5 </configSections> 6 <TT.appConfiguration appCode="Location_Management" appName="庫位管理系統"/> 7 <TT.connectionManager> 8 …… 9 </TT.connectionManager> 10 …… 11 <configuration>
在知道需要配置什麼樣的信息後,就需要定義讀取配置的實體類信息,本文以ApplicationConfiguration的建立為例,逐步展開。
1) 創建ApplicationConfiguration類,並指定該配置的配置節名稱,使用ConfigurationManager.GetSection(SECION_NAME)方法就能夠讀取到該配置,並將該信息強制轉換為ApplicationConfiguration類即可。
1 /// <summary> 2 /// 程式配置信息 3 /// </summary> 4 public class ApplicationConfiguration : ConfigurationSection 5 { 6 private const string SECTION_NAME = "TT.appConfiguration"; 7 8 /// <summary> 9 /// 獲取程式配置信息 10 /// </summary> 11 /// <returns></returns> 12 public static ApplicationConfiguration GetConfig() 13 { 14 ApplicationConfiguration config = ConfigurationManager.GetSection(SECTION_NAME) as ApplicationConfiguration; 15 return config; 16 } 17 }
2) 定義自定義配置的屬性信息,並使用ConfigurationPropertyAttribute對屬性進行約束。約束的信息主要包括:配置節名稱Name、是否必須IsRequired、預設值DefaultValue等。
1 /// <summary> 2 /// 應用系統代碼 3 /// </summary> 4 [ConfigurationProperty("appCode", IsRequired = false, DefaultValue = "")] 5 public string AppCode 6 { 7 get 8 { 9 return (string)this["appCode"]; 10 } 11 } 12 13 /// <summary> 14 /// 應用系統名稱 15 /// </summary> 16 [ConfigurationProperty("appName", IsRequired = false, DefaultValue = "")] 17 public string AppName 18 { 19 get 20 { 21 return (string)this["appName"]; 22 } 23 }
3) 自定義配置信息的獲取。
1 var appCode = ApplicationConfiguration.GetConfig().AppCode; 2 var appName = ApplicationConfiguration.GetConfig().AppName;
使用以上方法就可以讀取自定義配置信息,併在程式中使用。