ASP.NET MVC 学习笔记-7.自定义配置信息

匿名 (未验证) 提交于 2019-12-02 22:10:10

ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如,

1 <appSettings> 2   <add key="LogInfoProvider" value="Cookie" />//登录信息保存方式 3 </appSettings>

但是这些配置都是单个字符串信息,在某些情况下,无法做到灵活配置。

针对这种情况,使用.Net Framework提供的自定义系统配置方式来进行改善。自定义系统配置方式主要使用到以下几个类:

ConfigurationManager:通过该类能够直接获取Web.config的信息。

ConfigurationSection:表示配置文件中的一个配置节的信息。

ConfigurationElement:表示配置节中的单个配置项信息。

ConfigurationElementCollection:表示配置项的集合信息。

ConfigurationPropertyAttribute:对配置信息一些约束信息。

 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的建立为例,逐步展开。

创建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 }

定义自定义配置的属性信息,并使用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 }

自定义配置信息的获取。

1 var appCode = ApplicationConfiguration.GetConfig().AppCode; 2 var appName = ApplicationConfiguration.GetConfig().AppName;

使用以上方法就可以读取自定义配置信息,并在程序中使用。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!