程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 詳解C#讀取Appconfig中自界說的節點

詳解C#讀取Appconfig中自界說的節點

編輯:C#入門知識

詳解C#讀取Appconfig中自界說的節點。本站提示廣大學習愛好者:(詳解C#讀取Appconfig中自界說的節點)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解C#讀取Appconfig中自界說的節點正文


明天在應用Nlog的時刻,發明了一個之前沒留意的成績。

  之前,我的app設置裝備擺設文件都是這麼寫的,固然設置裝備擺設比擬多的時刻會改用xml。

 假如<appSettings>節點中的內容許多的話,我本身有時刻都分不清哪一個是做甚麼的,能夠同伙們會說,你加個正文不就好了。然則可弗成以把一些雷同的設置裝備擺設放在一路呢,就像下面的nlog一樣。先試著改革下設置裝備擺設文件


     <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 元素開端到網優勢暴了一番。ConfigurationSection 類

 然後曉得可以經由過程ConfigurationManager類的GetSection辦法獲得到設置裝備擺設文件的信息。(假如運用法式須要以只讀方法拜訪其本身設置裝備擺設,則關於 Web 運用法式,建議應用 GetSection() 重載辦法;關於客戶端運用法式,建議應用 ConfigurationManager.GetSection 辦法。----MSDN)


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

  運轉一下法式嘗嘗,迎來了第一個異常。System.Configuration.ConfigurationErrorsException: 創立 mySection 的設置裝備擺設節處置法式時失足: 類型“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 辦法,創立設置裝備擺設節處置法式。算了,直接斷點跟蹤一下,果真有器械

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

這回法式正常運轉了,且mySection 也拿到了設置裝備擺設文件

然則在法式中我們怎樣獲得這些設置裝備擺設數據呢?我創立了一個處置設置裝備擺設文件的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>

運轉成果:

好了,一切完成。

以上所述就是本文的全體內容了,願望年夜家可以或許愛好。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved