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

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

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值