JerrySoft

导航

Web Application配置文件里使用自定义的配置节

1、 首先在web.config文件里增加相应的配置。
2、 然后写一个处理配置节的类。

示例:

Web.config文件内容如下所示:
<configuration>
 <configSections>
  <section name="CustomSection" type="WebApp.CustomSection, WebApp" />
 </configSections>
 <CustomSection permission="Read" name="张三" age="18" />
</configuration>

其中“CustomSection”是节名,WebApp.CustomSection是节处理类名,WebApp是Assembly名。
接下来写处理类:

using System;
using System.Configuration;

namespace WebApp
{
    
public sealed class CustomSection : ConfigurationSection
    
{
        
public enum Permissions
        
{
            FullControl 
= 0,
            Modify 
= 1,
            ReadExecute 
= 2,
            Read 
= 3,
            Write 
= 4,
            SpecialPermissions 
= 5
        }


        
public CustomSection()
        
{
        }


        [ConfigurationProperty(
"name", DefaultValue = "李四")]
        [StringValidator(InvalidCharacters 
= " ~!@#$%^&*()[]{}/;'\"|\\", MinLength = 1, MaxLength = 60)]
        public String Name
        
{
            
get return (String)this["name"]; }
            
set this["name"= value; }
        }


        [ConfigurationProperty(
"age", DefaultValue = 1)]
        
public int Age
        
{
            
get return (int)this["age"]; }
            
set this["age"= value; }
        }


        [ConfigurationProperty(
"permission", DefaultValue = Permissions.Read)]
        
public Permissions Permission
        
{
            
get return (Permissions)this["permission"]; }
            
set this["permission"= value; }
        }

    }

}

接下来就可以读配置了,如下所示:

CustomSection customSection = ConfigurationManager.GetSection("CustomSection") as CustomSection;
int age = customSection.Age;

如果要读写,那么像下面这样写:

int age = 0;
    ExeConfigurationFileMap map 
= new ExeConfigurationFileMap();
    
//指定配置文件物理路径
    map.ExeConfigFilename = Server.MapPath("Web.config");
    System.Configuration.Configuration config 
= ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
    CustomSection customSection 
= null;
    
string sectionName = "CustomSection";
    
if (config.Sections[sectionName] != null)
    
{
        customSection 
= config.Sections[sectionName] as CustomSection;
    }

    
if (customSection != null)
    
{
        
//
        age = customSection.Age;
        
//修改值
        customSection.Age = age + 2;
        
//保存
        config.Save(ConfigurationSaveMode.Full);
    }

posted on 2007-02-28 11:47  水-手  阅读(261)  评论(0)    收藏  举报