关于config文件的自定义节点

1.设置定义的section节点必须继承ConfigurationSection类,并设置相关特性ConfigurationProperty,设置特性后,将设置的特性在app.config中进行填写;

2.单节点处理,不需要进行复杂的节点处理,直接配置,直接使用。

  1 public class RedisConfigInfo : ConfigurationSection
  2 {
  3         private static RedisConfigInfo setting;
  4         public static RedisConfigInfo Setting
  5         {
  6             get
  7             {
  8                 if (setting == null)
  9                 {
 10                     setting = (RedisConfigInfo)ConfigurationManager.GetSection("RedisConf");
 11                 }
 12                 return setting;
 13             }
 14         }
 15 
 16         [ConfigurationProperty("Host", IsRequired = true)]
 17         public string Host
 18         {
 19             set
 20             {
 21                 this["Host"] = value;
 22             }
 23             get
 24             {
 25                 return (string)this["Host"];
 26             }
 27         }
 28 
 29         [ConfigurationProperty("Port")]
 30         public int Port
 31         {
 32             get
 33             {
 34                 return (int)(this["Port"] ?? 6379);
 35             }
 36             set
 37             {
 38                 this["Port"] = value;
 39             }
 40         }
 41 
 42         [ConfigurationProperty("DaultDb")]
 43         public int DaultDb
 44         {
 45             set
 46             {
 47                 this["DaultDb"] = value;
 48             }
 49             get
 50             {
 51                 return (int)(this["DaultDb"] ?? 0);
 52             }
 53         }
 54 
 55         [ConfigurationProperty("MaxWritePoolSize")]
 56         public int MaxWritePoolSize
 57         {
 58             set
 59             {
 60                 this["MaxWritePoolSize"] = value;
 61             }
 62             get
 63             {
 64                 return (int)this["MaxWritePoolSize"];
 65             }
 66         }
 67 
 68         [ConfigurationProperty("MaxReadPoolSize")]
 69         public int MaxReadPoolSize
 70         {
 71             set
 72             {
 73                 this["MaxReadPoolSize"] = value;
 74             }
 75             get
 76             {
 77                 return (int)this["MaxReadPoolSize"];
 78             }
 79         }
 80 
 81         [ConfigurationProperty("AutoStart")]
 82         public bool AutoStart
 83         {
 84             set
 85             {
 86                 this["AutoStart"] = value;
 87             }
 88             get
 89             {
 90                 return (bool)this["AutoStart"];
 91             }
 92         }
 93 
 94         [ConfigurationProperty("WriteServerList")]
 95         public string WriteServerList
 96         {
 97             set
 98             {
 99                 this["WriteServerList"] = value;
100             }
101             get
102             {
103                 return (string)this["WriteServerList"];
104             }
105         }
106 
107         [ConfigurationProperty("ReadServerList")]
108         public string ReadServerList
109         {
110             set
111             {
112                 this["ReadServerList"] = value;
113             }
114             get
115             {
116                 return (string)this["ReadServerList"];
117             }
118      }
119 }

完成配置后,在对应文件中插入相关的配置:

1.声明引用:

 <configSections>
    <section name="RedisConf" type="Arrowtip.Common.RedisConf.RedisConfigInfo,Arrowtip.Common"/>
  </configSections>

2.细致使用针对section节点的配置:

<RedisConf Host="192.168.121.128" Port="6379" DaultDb="15" WriteServerList="192.168.121.128"
             ReadServerList="192.168.121.128" MaxWritePoolSize="1000" MaxReadPoolSize="1000" AutoStart="true">
</RedisConf>

以上是单节点配置,只能配置一个节点。

原文地址:https://www.cnblogs.com/ArrowTip/p/ConfigSection.html