您的位置:首页 > 其它

关于 web.config 里自定义节点的设置和读取

2007-11-12 10:06 489 查看
1. 对于web.config 的设置的问题

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">

<configSections>
<section name="DocManagerConfiguration" type="DocManager.Common.DocManagerConfigurationHandler1, DocManager.Common"/>
</configSections>

<DocManagerConfiguration>
<add key="WebDAL" value="DocManager.SyBaseDAL"/>
<add key="DatabaseType" value="SyBase"/>
<add key="IsEncrypt" value="false"></add>
<add key="DefaultNameSpace" value="http://www.seaskylight.com/"></add>
<add key="EnableDataAccessTrace" value="false"></add>
</DocManagerConfiguration>
</configuration>

配置如上

新建一个类实现 IConfigurationSectionHandler 接口

public object Create(object parent, object configContext, System.Xml.XmlNode section)
{
DocManagerConfiguration config = new DocManagerConfiguration();
NameValueCollection settings;
try
{
NameValueSectionHandler baseHandler = new NameValueSectionHandler();
settings = (NameValueCollection)baseHandler.Create(parent, configContext, section);
}
catch
{
settings = null;
}

if (settings != null)
{
Alogrim alogrimClass = new Alogrim(Alogrim.SymmProvEnum.RC2);
alogrimClass.IV = "DocManager";
alogrimClass.Key = "DocManager";
if (bool.Parse(settings["IsEncrypt"]))
{
if (ConfigurationManager.ConnectionStrings["DatabaseConnectionString"] != null)
config.DatabaseConnectionString = alogrimClass.Decrypting(ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString);

config.DefaultNameSpace = alogrimClass.Decrypting((string)settings["DefaultNameSpace"]);
config.EnableDataAccessTrace = bool.Parse(alogrimClass.Decrypting((string)settings["EnableDataAccessTrace"]));
config.WebDAL = alogrimClass.Decrypting((string)settings["WebDAL"]);

}
else
{
if (ConfigurationManager.ConnectionStrings["DatabaseConnectionString"] != null)
config.DatabaseConnectionString = ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ToString();
if (settings["DatabaseType"] != null)
config.DatabaseType = settings["DatabaseType"];
if (settings["EnableDataAccessTrace"] != null)
config.EnableDataAccessTrace = bool.Parse(settings["EnableDataAccessTrace"]);
if (settings["WebDAL"] != null)
config.WebDAL = settings["WebDAL"];

}
}
return config;
}

3. 如何读取的问题

(DocManagerConfiguration)ConfigurationManager.GetSection("DocManagerConfiguration");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐