zoukankan      html  css  js  c++  java
  • VS2012 常用web.config配置解析之自定义配置节点

    在web.config文件中拥有一个用户自定义配置节点configSections,这个节点可以方便用户在web.config中随意的添加配置节点,让程序更加灵活(主要用于第三方插件的配置使用)

    自定义节点是一个XML格式的数据,我们可以在节点中灵活的配置自己的数据,下面是一个简单数据的例子

    1.先看一下web.config中的配置结构

      <configSections>
        <section name="modelsection" type="Amy.WebUI.Plugin.ConfigSections.ModelSectionHandler,Amy.WebUI"/>
      </configSections>
    
      <modelsection>
        <title>测试</title>
        <content>测试</content>
      </modelsection>
    

     2.为了实现自定义配置节点的解析,我们需要实现接口IConfigurationSectionHandler

        public class ModelSectionHandler : IConfigurationSectionHandler
        {
            /// <summary>
            /// 解析配置文件信息
            /// </summary>
            public object Create(object parent, object configContext, XmlNode section)
            {
                var json = section.ToJsonByJsonNet().GetJsonValue("modelsection");
    
                return json.ToObjectByJsonNet<ModelConfig>();
            }
        }
    

     3.ModelConfig类为了防止消耗IO资源,做了一个单例

        public class ModelConfig
        {
            private static ModelConfig instance;
            private static readonly object syncObject = new object();
    
            private ModelConfig() { }
    
            public static ModelConfig GetInstance()
            {
                if (instance == null)
                {
                    lock (syncObject)
                    {
                        if (instance == null)
                        {
                            instance = (Plugin.ConfigSections.ModelConfig)System.Configuration.ConfigurationManager.GetSection("modelsection");
                        }
                    }
                }
    
                return instance;
            }
    
    
            public string Title { get; set; }
    
            public string Content { get; set; }
        }
    

     4.读取数据,很简单及类的静态方法调用就OK;var config = Plugin.ConfigSections.ModelConfig.GetInstance();

  • 相关阅读:
    asp结合swf外调代码
    loadMovie与loadMovieNum区别
    行业常用名词及缩写定义
    用javascript 控制跳转页面
    jdk源码整数和字符串间的转换
    动态代理动态生成java文件并编译成class文件
    JDK源码分析——动态代理源码(Proxy类)
    策略模式与工厂模式比较
    Java编程:常见问题汇总
    工厂方法与抽象工厂的区别
  • 原文地址:https://www.cnblogs.com/amywechat/p/4897678.html
Copyright © 2011-2022 走看看