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);
}


浙公网安备 33010602011771号