zoukankan      html  css  js  c++  java
  • c# ConfigurationSection

    怎么把自己的配置文件配置到app.config中?

    • 方案1:在app.config中添加
     <!--应用配置-->
      <appSettings configSource="ConfAppSettings.config" />

    如果我需要自己定义单独的多个配置文件,又该怎么处理才可以把配置文件添加app.config中呢?

    • 方案2:定义ConfigurationSection类
    MyConfigurationSection  
     1 public class MyConfigurationSection : ConfigurationSection
     2 {
     3     [ConfigurationProperty("", IsDefaultCollection = true)]
     4     public KeyValueConfigurationElementCollection My
     5     {
     6         get { return (KeyValueConfigurationElementCollection)base[""]; }
     7     }
     8 
     9     public string GetValueByKey(string key)
    10     {
    11         foreach (KeyValueConfigurationElement item in this.My)
    12         {
    13             if (item.Key == key)
    14                 return item.Value;
    15         }
    16 
    17         return string.Empty;
    18     }
    19 
    20     //[ConfigurationProperty("configSource", IsRequired = false)]
    21     //public string ConfigSource
    22     //{
    23     //    get { return (string)base["configSource"]; }
    24     //    set
    25     //    {
    26     //        base["configSource"] = value;
    27     //    }
    28     //}
    29 }

    KeyValueConfigurationElementCollection

     1 public class KeyValueConfigurationElementCollection : ConfigurationElementCollection
     2 {
     3     protected override ConfigurationElement CreateNewElement()
     4     {
     5         return new KeyValueConfigurationElement();
     6     }
     7 
     8     protected override object GetElementKey(ConfigurationElement element)
     9     {
    10         return (element as KeyValueConfigurationElement).Key;
    11     }
    12 
    13     public override ConfigurationElementCollectionType CollectionType
    14     {
    15         get { return ConfigurationElementCollectionType.BasicMap; }
    16     }
    17 
    18     protected override string ElementName
    19     {
    20         get { return "add"; }
    21     }
    22 }

    KeyValueConfigurationElement

     1 public class KeyValueConfigurationElement : ConfigurationElement
     2 {
     3     [ConfigurationProperty("key", IsRequired = true)]
     4     public string Key
     5     {
     6         get { return (string)base["key"]; }
     7         set { base["key"] = value; }
     8     }
     9 
    10     [ConfigurationProperty("value", IsRequired = true)]
    11     public string Value
    12     {
    13         get { return (string)base["value"]; }
    14         set { base["value"] = value; }
    15     }
    16 }

    修改app.config配置文件:

    <configSections>
        <section name="my" type="DTCore.MyConfigurationSection,DTCore"/>
    </configSections>
    
    <mre configSource="ConfMy_Settings.config" />
    ConfMy_Settings.config

    1 <?xml version="1.0" encoding="utf-8"?>
    2 <my>
    3   <add key="DT.AKey" value="c key"/>
    4   <add key="DT.CKey.RIPPRB" value="the value"/>
    5 </my>

    怎么调用:

    1 MyConfigurationSection mySection=(MyConfigurationSection)ConfigurationManager.GetSection("my");
    2 string value=mySection.GetValueByKey("DT.AKey");
  • 相关阅读:
    jacman主题分页出现问题(Next<span></span>)
    后会有期(非技术)
    再谈前端性能优化
    emmet常用指令组合
    imagemagick在windows下安装(转,有改动)
    nth-child和蝉原则实现的奇妙随机效果(译)
    flex布局浅谈和实例
    css命名那些事儿
    chrome开发者工具浅析--timeline
    浏览器历史和发展趋势浅析
  • 原文地址:https://www.cnblogs.com/yy3b2007com/p/4992617.html
Copyright © 2011-2022 走看看