自定义配置app.config

先要写配置类,然后封装成DLL
代码
namespace  CustomConfig
{
    
public     class  DbFactorySection:System.Configuration.ConfigurationSection
    {
        [System.Configuration.ConfigurationProperty(
" default " )]
        
public  DefaultElement DefaultFactory
        {
            
get
            {
                
return   this [ " default " as  DefaultElement;
            }
            
set
            {
                
this [ " default " =  value;
            }     
        }
        [System.Configuration.ConfigurationProperty(
" factorys " )]
        
public  FactoryElements Factorys
        {
            
get
            {
                
return   this [ " factorys " as  FactoryElements;
            }
            
set
            {
                
this [ " factorys " =  value;
            }
        
        }

    }
}

 

代码
namespace  CustomConfig
{
    
public    class  DefaultElement: System.Configuration.ConfigurationElement
    {
        [System.Configuration.ConfigurationProperty(
" factory " )]
        
public   string  Factory
        {
            
get
            {
                
return   this [ " factory " as   string ;
            }
            
set
            {
                
this [ " factory " =  value;
            }
        
        }
    }
}

 

 

代码
namespace  CustomConfig
{
    
public   class  FactoryElement:System.Configuration.ConfigurationElement
    {
        [System.Configuration.ConfigurationProperty(
" name " )]
        
public   string  Name
        {
            
get
            {
                
return   this [ " name " as   string ;
            }
            
set
            {
                
this [ " name " =  value;
            }
        }
        [System.Configuration.ConfigurationProperty(
" assembly " )]
        
public   string  Assembly
        {
            
get
            {
                
return   this [ " assembly " as   string ;
            }
            
set
            {
                
this [ " assembly " =  value;
            }
        }
        [System.Configuration.ConfigurationProperty(
" class " )]
        
public   string  Class
        {
            
get
            {
                
return   this [ " class " as   string ;
            }
            
set
            {
                
this [ " class " =  value;
            }
        }
           
    }
}

 

 

代码
namespace  CustomConfig
{
    
public    class  FactoryElements: System.Configuration.ConfigurationElementCollection
    {
        
protected   override  System.Configuration.ConfigurationElement CreateNewElement()
        {
            
return   new  FactoryElement();
        }

        
protected   override   object  GetElementKey(System.Configuration.ConfigurationElement element)
        {
            
return  ((FactoryElement)element).Name;   
        }

        
///   <summary>
        
///  用于在元素集合中指定名字
        
///   </summary>
        
///   <param name="name"></param>
        
///   <returns></returns>
         public  FactoryElement  this [ string  name]
        {
            
get
            {
                
return  BaseGet(name)  as  FactoryElement;
            }
        }
    }
}

 

在app.config中加入以下节点:

 

代码
< configuration >
    
< configSections >
      
< section  name = " dbFactory "  type = " CustomConfig.DbFactorySection,CustomConfig " />
    
</ configSections >
  
< dbFactory >
    
< default  factory = " sql " >
    
</ default >
    
< factorys >
      
< add name = " sql "  assembly = " Hello.Data "   class = " SqlDbFactory " />
      
< add name = " oracle "  assembly = " Hello.Data "   class = " OracleDbFactory " />
    
</ factorys >
  
</ dbFactory >

后台中调用:

 

 DbFactorySection conSection = System.Configuration.ConfigurationManager.GetSection("dbFactory") as CustomConfig.DbFactorySection;

            string strName = conSection.Factorys["sql"].Name.ToString();

可以得到配置节点的信息.

转自:http://www.cnblogs.com/zhaoguihua/archive/2010/01/21/1652847.html

你可能感兴趣的:(config)