IConfigurationSectionHandler 接口

IConfigurationSectionHandler

处理对特定的配置节的访问。

示例代码:

复制代码
  public class MyConfig : IConfigurationSectionHandler
    {
        public int MyNum1 { get; set; }
        public int MyNum2 { get; set; }
        public int MyNum3 { get; set; }

        public MyConfig()
        {
            MyNum1 = 0;
            MyNum2 = 0;
            MyNum3 = 0;
        }
        // implement interface member
        public object Create(object parent, object configContext, System.Xml.XmlNode section)
        {
            try
            {
                MyConfig options = new MyConfig();
                if (section == null) return options;

                foreach (XmlNode node in section.ChildNodes)
                {
                    if (node.Name == "MyNum1")
                        options.MyNum1 = int.Parse(node.InnerText);
                    else if (node.Name == "MyNum2")
                        options.MyNum2 = int.Parse(node.InnerText);
                    else if (node.Name == "MyNum3")
                        options.MyNum3 = int.Parse(node.InnerText);
                }
                return options;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

        }
    }
复制代码

Web.config配置:

<section name="MyConfig" type="WebApp.MyConfig" />

 <MyConfig>
    <MyNum1>111</MyNum1>
    <MyNum2>222</MyNum2>
    <MyNum3>333</MyNum3>
  </MyConfig>
复制代码
<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <section name="MyConfig" type="WebApp.MyConfig" />
  </configSections>
  <MyConfig>
    <MyNum1>111</MyNum1>
    <MyNum2>222</MyNum2>
    <MyNum3>333</MyNum3>
  </MyConfig>
复制代码

 

调用:

 var myconfig = WebConfigurationManager.GetSection("MyConfig") as MyConfig;
            Response.Write(myconfig.MyNum2);

参考:

https://stackoverflow.com/questions/3694253/how-to-use-iconfigurationsectionhandler-for-global-configuration/28060401#28060401

posted @   zzhi.wang  阅读(698)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示