C#除了appSettings和connectionStrings默认配置外还允许用户自定义使用配置。C# 提供3中简单的自定义配置,配置文件如下

  

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="Config1" type="System.Configuration.SingleTagSectionHandler"/>
    <section name="Config2" type="System.Configuration.DictionarySectionHandler"/>
    <section name="Config3" type="System.Configuration.NameValueSectionHandler"/>
  </configSections>
  <Config1 a="1" b="2"/>
  <Config2>
    <add key="a" value="1"/>
    <add key="b" value="2"/>
  </Config2>
  <Config3>
    <add key="a" value="1"/>
    <add key="b" value="2"/>
  </Config3>
</configuration>

  使用这3种中配置要注意:

   1.  configSections节点必须要是配置的第一个节点。

   2. 自定义配置要在configSections内部声明。格式是<section name="配置名" type="类的全路径,dll名"/> 系统的这3种配置dll省略。

   3. 针对以上3种配置格式不能变,不能变,不能变,重要的事说3遍 。<Config1 a="1" b="2"></Config1 > 这种写法 抛出异常。

  这3中使用也比较简单,用ConfigurationManager.GetSection(XXX)获取节点数据。第一种和第二种都返回Hashtable类型(Hashtable实现IDictionary接口),第三种返回NameValueCollection 与appSettings返回类型相同。

  

 1  public static void Main(string[] args)
 2         {
 3             //    Hashtable
 4             Hashtable config1 = (Hashtable)ConfigurationManager.GetSection("Config1");
 5             Dictionary<string, string> c = new Dictionary<string, string>();
 6             Console.WriteLine("****************配置1**********************");
 7             Console.WriteLine("遍历");
 8             foreach (DictionaryEntry g in config1)
 9             {
10                 Console.WriteLine(g.Key + "=" + g.Value);
11             }
12             Console.WriteLine("使用:a=" + config1["a"]);
13 
14 
15             Hashtable config2 = (Hashtable)ConfigurationManager.GetSection("Config2");
16             Console.WriteLine("****************配置2**********************");
17             Console.WriteLine("遍历");
18             foreach (DictionaryEntry g in config1)
19             {
20                 Console.WriteLine(g.Key + "=" + g.Value);
21             }
22             Console.WriteLine("使用:a=" + config1["a"]);
23 
24 
25             
26             Console.WriteLine("****************配置3**********************");
27             NameValueCollection config3 = (NameValueCollection)ConfigurationManager.GetSection("Config3");
28             Console.WriteLine("遍历");
29             foreach (var item in config3.AllKeys)
30             {
31                 Console.WriteLine(item + "=" + config3[item]);
32             }
33             Console.WriteLine("使用:a=" + config3["a"]);
34 
35             Console.ReadLine();
36         }
获取配置

相关文章:

  • 2021-09-07
  • 2022-12-23
  • 2022-12-23
  • 2021-09-24
  • 2021-07-19
  • 2022-12-23
猜你喜欢
  • 2022-02-06
  • 2022-01-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-04
  • 2022-12-23
相关资源
相似解决方案