最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解C#讀取Appconfig中自定義的節(jié)點

 更新時間:2015年06月17日 09:25:31   投稿:hebedich  
我們往往需要在App.config中自定義一些節(jié)來滿足實際需要,而不依賴于App.config的appSettings,下面通過一個簡單的實例來說明自定義配置節(jié)點的設(shè)置與讀取

今天在使用Nlog的時候,發(fā)現(xiàn)了一個之前沒注意的問題。

  以前,我的app配置文件都是這么寫的,當然配置比較多的時候會改用xml。

 如果<appSettings>節(jié)點中的內(nèi)容很多的話,我自己有時候都分不清哪個是做什么的,可能朋友們會說,你加個注釋不就行了。但是可不可以把一些相同的配置放在一起呢,就像上面的nlog一樣。先試著改造下配置文件

復(fù)制代碼 代碼如下:

     <configSections>
         <section name="mySection" type="ConfigSolution.ConfigSectionHandler,ConfigSolution"></section>
     </configSections>
     <mySection>
         <port CPort="40001" WPort="40002" SPort="50000"></port>
         <coustomAssembly CommandsAssembly="HX.Components.Command.Collection" CommandMessagesAssembly="HX.Components.CommandMessage.Collection"></coustomAssembly>
     </mySection>

  那么,怎么獲取section里的值呢?從configSections 元素開始到網(wǎng)上風暴了一番。ConfigurationSection 類

 然后知道可以通過ConfigurationManager類的GetSection方法獲取到配置文件的信息。(如果應(yīng)用程序需要以只讀方式訪問其自身配置,則對于 Web 應(yīng)用程序,建議使用 GetSection() 重載方法;對于客戶端應(yīng)用程序,建議使用 ConfigurationManager.GetSection 方法。----MSDN)

復(fù)制代碼 代碼如下:

var mySection = ConfigurationManager.GetSection("mySection");

  運行一下程序試試,迎來了第一個異常。System.Configuration.ConfigurationErrorsException: 創(chuàng)建 mySection 的配置節(jié)處理程序時出錯: 類型“ConfigSolution.ConfigSectionHandler”不從“System.Configuration.IConfigurationSectionHandler”繼承。 ---> System.TypeLoadException: 類型“ConfigSolution.ConfigSectionHandler”不從“System.Configuration.IConfigurationSectionHandler”繼承。

  既然說我的ConfigSolution.ConfigSectionHandler不從System.Configuration.IConfigurationSectionHandler繼承,那好,我就繼承它,然后看看這個接口都有些什么東西,Ctrl+T一下(SharpDevelop的快捷鍵),這接口就一個方法

直接MSDN一下,IConfigurationSectionHandler.Create  信息量不是很大,就一句話:IConfigurationSectionHandler.Create 方法,創(chuàng)建配置節(jié)處理程序。算了,直接斷點跟蹤一下,果然有東西

好了,剩下的就是對xml的讀取了。直接把section return看看,

這回程序正常運行了,且mySection 也拿到了配置文件

但是在程序中我們怎么獲取這些配置數(shù)據(jù)呢?我創(chuàng)建了一個處理配置文件的MySectionHelper類,大體如下

   public class MySectionHelper
   {
     readonly XmlNode _section;
     readonly XmlNode _coustomAssembly;
     public MySectionHelper(XmlNode section)
     {
       _section=section;
       _coustomAssembly= _section.SelectSingleNode("coustomAssembly");
     }
     
     public string CommandsAssembly{get{return _coustomAssembly.Attributes["CommandsAssembly"].Value;}}
   }

試試行不行,我的配置文件

   <configSections>
     <section name="mySection" type="ConfigSolution.ConfigSectionHandler,ConfigSolution"></section>
   </configSections>
   <mySection>
     <port CPort="40001" WPort="40002" SPort="50000"></port>
     <coustomAssembly CommandsAssembly="HX.Components.Command.Collection" CommandMessagesAssembly="HX.Components.CommandMessage.Collection"></coustomAssembly>
   </mySection>

運行結(jié)果:

好了,一切完成。

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • C#中EventWaitHandle的用法小結(jié)

    C#中EventWaitHandle的用法小結(jié)

    EventWaitHandle是C#中用于線程間同步的一個類,它提供了對共享資源的訪問控制,以及線程間的同步機制,本文就來介紹一下EventWaitHandle用法,具有一定的參考價值,感興趣的可以了解一下
    2025-04-04
  • 使用TypeScript開發(fā)微信小程序的方法

    使用TypeScript開發(fā)微信小程序的方法

    TypeScript是C#之父Anders Hejlsberg的又一力作,很多喜歡c#語法的朋友對typescript都愛不釋手,今天小編給大家介紹下TypeScript開發(fā)微信小程序的方法,感興趣的朋友一起看看吧
    2016-11-11
  • c#linq里的Skip和Take實現(xiàn)分頁或遍歷

    c#linq里的Skip和Take實現(xiàn)分頁或遍歷

    LINQ的優(yōu)勢在于它提供了一種直觀、類型安全的方式來操作各種類型的數(shù)據(jù),查詢常需要獲取一部分數(shù)據(jù),為了實現(xiàn)這一功能,LINQ提供了Take?和Skip運算符,Take運算符用于從一個序列中返回指定個數(shù)的元素,Skip運算符用于從一個序列中跳過指定個數(shù)的元素
    2024-01-01
  • 詳解C#中線程傳參,返回值和多線程沖突問題的解決

    詳解C#中線程傳參,返回值和多線程沖突問題的解決

    這篇文章主要為大家詳細介紹了C#中線程傳參,返回值和多線程沖突問題的解決方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習一下
    2022-11-11
  • C#實現(xiàn)根據(jù)銀行卡卡號判斷銀行名

    C#實現(xiàn)根據(jù)銀行卡卡號判斷銀行名

    這篇文章主要介紹了C#實現(xiàn)根據(jù)銀行卡卡號判斷銀行名,是從其他網(wǎng)友的java程序改編而來,有需要的小伙伴可以參考下。
    2015-07-07
  • C#多線程與跨線程訪問界面控件的方法

    C#多線程與跨線程訪問界面控件的方法

    這篇文章主要介紹了C#多線程與跨線程訪問界面控件的方法,實例分析了C#多線程與跨線程訪問空間的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • C#使用Data?Annotations進行手動數(shù)據(jù)驗證

    C#使用Data?Annotations進行手動數(shù)據(jù)驗證

    這篇文章介紹了C#使用Data?Annotations進行手動數(shù)據(jù)驗證的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#中IEnumerable接口介紹并實現(xiàn)自定義集合

    C#中IEnumerable接口介紹并實現(xiàn)自定義集合

    這篇文章介紹了C#中IEnumerable接口并實現(xiàn)自定義集合,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#獲取路徑的幾種方式實例分析

    C#獲取路徑的幾種方式實例分析

    這篇文章主要介紹了C#獲取路徑的幾種方式,實例分析了C#常用的路徑操作技巧,需要的朋友可以參考下
    2015-06-06
  • httpwebreqeust讀取httponly的cookie方法

    httpwebreqeust讀取httponly的cookie方法

    下面小編就為大家?guī)硪黄猦ttpwebreqeust讀取httponly的cookie方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01

最新評論

涟水县| 梅河口市| 陵水| 湖南省| 娱乐| 宿州市| 广元市| 常宁市| 岳阳市| 濮阳市| 大宁县| 平利县| 新化县| 北安市| 通江县| 曲阜市| 南平市| 拜泉县| 鄂州市| 家居| 禹城市| 济南市| 保德县| 冕宁县| 清流县| 江华| 荆州市| 盖州市| 荆州市| 广安市| 贺兰县| 宽甸| 延庆县| 永和县| 鸡西市| 山西省| 龙泉市| 鹤岗市| 同德县| 防城港市| 昌吉市|