设为首页 加入收藏

TOP

ASP.NET MVC 学习笔记-7.自定义配置信息(后续)(三)
2019-09-02 23:12:57 】 浏览:29
Tags:ASP.NET MVC 学习 笔记 -7. 定义 配置 信息 后续
</summary> 9 [ConfigurationProperty("type")] 10 public string Type 11 { 12 get 13 { 14 return (string)base["type"]; 15 } 16 } 17 }

 

 

3. ConnectionStrings类

ConnectionStrings、DataProviders、ConnectionDecrypts三个配置列表实体,都会使用到使用配置项的名称获取对应的配置信息,因此需要将公共方法提取出来基类。

 1 public abstract class NamedConfigurationElementCollection<T> : ConfigurationElementCollection
 2 
 3     where T : NamedConfigurationElement, new()
 4 
 5 {
 6  
 7     /// <summary>
 8     /// 按照名称获取指定的配置元素
 9     /// </summary>
10     /// <param name="name">名称</param>
11     /// <returns>配置元素</returns>
12     public new T this[string name] { get { return (T)BaseGet(name); } }
13 
14 
15     /// <summary>
16     /// 是否包含指定的配置元素
17     /// </summary>
18     /// <param name="name">配置元素名称</param>
19     /// <returns>是否包含</returns>
20     public bool ContainsKey(string name) { return BaseGet(name) != null; }
21 
22     /// <summary>
23     /// 添加元素
24     /// </summary>
25     /// <param name="obj"></param>
26     public virtual void Add(T obj)
27     {
28         BaseAdd(obj);
29     }
30 
31     /// <summary>
32     /// 得到元素的Key值
33     /// </summary>
34     /// <param name="element">配置元素</param>
35     /// <returns>配置元素所对应的配置元素</returns>
36     protected override object GetElementKey(ConfigurationElement element) { return ((T)element).Name; }
37  
38     /// <summary>
39     /// 生成新的配置元素实例
40     /// </summary>
41     /// <returns>配置元素实例</returns>
42     protected override ConfigurationElement CreateNewElement() { return new T(); }
43 }

 

定义基类后,ConnectionStrings、DataProviders、ConnectionDecrypts三个配置列表实体只需要继承该基类,不需要任何实现。

 1 public class ConnectionStringCollection: NamedConfigurationElementCollection<ConnectionStringElement>
 2 {
 3 
 4        
 5 
 6 }
 7 
 8 public class DataProviderCollection: NamedConfigurationElementCollection<DataProviderElement>
 9 {
10 
11 }
12 
13 public class ConnectionDecryptCollection: NamedConfigurationElementCollection<ConnectionDecryptElement>
14 {
15 
16 
17 }

 

通过以上配置实体类的定义,就可以使用以下方式获取到数据库配置信息:

DBConnectionConfiguration settings = DBConnectionConfiguration.GetConfig();

然后,根据数据库连接的名称获取到对应的信息,比如:

var connectionString = settings.ConnectionStrings[dbName].ConnectionString;

这里的DBName就是connectString配置项中的name信息。

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇匿名对象解析 下一篇C#基础知识回顾:1.由WeakReferen..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目