欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

  以前,我的app配置文件都是這么寫的,當(dāng)然配置比較多的時(shí)候會(huì)改用xml。

 如果<appSettings>節(jié)點(diǎn)中的內(nèi)容很多的話,我自己有時(shí)候都分不清哪個(gè)是做什么的,可能朋友們會(huì)說(shuō),你加個(gè)注釋不就行了。但是可不可以把一些相同的配置放在一起呢,就像上面的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)上風(fēng)暴了一番。ConfigurationSection 類

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

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

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

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

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

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

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

這回程序正常運(yùn)行了,且mySection 也拿到了配置文件

但是在程序中我們?cè)趺传@取這些配置數(shù)據(jù)呢?我創(chuàng)建了一個(gè)處理配置文件的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>

運(yùn)行結(jié)果:

好了,一切完成。

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

相關(guān)文章

  • C#多線程系列之多線程鎖lock和Monitor

    C#多線程系列之多線程鎖lock和Monitor

    這篇文章介紹了C#多線程鎖lock和Monitor的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • C#學(xué)習(xí)基礎(chǔ)概念二十五問續(xù)2

    C#學(xué)習(xí)基礎(chǔ)概念二十五問續(xù)2

    C#學(xué)習(xí)基礎(chǔ)概念二十五問續(xù)2...
    2007-04-04
  • 詳解C# FileStream類

    詳解C# FileStream類

    這篇文章主要介紹了詳解C# FileStream類的相關(guān)知識(shí),文中講解的非常細(xì)致,代碼供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • C#向PPT文檔插入圖片以及導(dǎo)出圖片的實(shí)例

    C#向PPT文檔插入圖片以及導(dǎo)出圖片的實(shí)例

    PowerPoint演示文稿是我們?nèi)粘9ぷ髦谐S玫霓k公軟件之一,本篇文章介紹了C#向PPT文檔插入圖片以及導(dǎo)出圖片的實(shí)例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2016-12-12
  • 談C# using的用法與好處

    談C# using的用法與好處

    這篇文章主要為大家詳細(xì)介紹了C# using的用法與好處,具體分析了using指令調(diào)用的Dispose()方法,感興趣的朋友可以參考一下
    2016-05-05
  • c# 如何自己實(shí)現(xiàn)一個(gè)ORM框架

    c# 如何自己實(shí)現(xiàn)一個(gè)ORM框架

    這篇文章主要介紹了c# 如何自己實(shí)現(xiàn)一個(gè)ORM,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#將圖片和字節(jié)流互相轉(zhuǎn)換并顯示到頁(yè)面上

    C#將圖片和字節(jié)流互相轉(zhuǎn)換并顯示到頁(yè)面上

    本文主要介紹用C#實(shí)現(xiàn)圖片轉(zhuǎn)換成字節(jié)流,字節(jié)流轉(zhuǎn)換成圖片,并根據(jù)圖片路徑返回圖片的字節(jié)流,有需要的朋友可以參考下
    2015-08-08
  • C#多線程系列之任務(wù)基礎(chǔ)(三)

    C#多線程系列之任務(wù)基礎(chǔ)(三)

    本文詳細(xì)講解了C#多線程的任務(wù)基礎(chǔ),文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • C#以太網(wǎng)Sockets客戶端設(shè)計(jì)實(shí)現(xiàn)

    C#以太網(wǎng)Sockets客戶端設(shè)計(jì)實(shí)現(xiàn)

    本文主要介紹了C#以太網(wǎng)Sockets客戶端設(shè)計(jì)實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • C#值類型和引用類型的深入理解

    C#值類型和引用類型的深入理解

    本篇文章主要是對(duì)C#中值類型和引用類型進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來(lái)參考下,希望對(duì)大家有所幫助
    2014-01-01

最新評(píng)論