文章出處

在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();


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()