[心得] ConfigurationManager類別

看板C_Sharp (C#)作者 (tomex_ou)時間18年前 (2007/01/21 20:51), 編輯推噓3(300)
留言3則, 3人參與, 最新討論串1/1
說到要把ap的設定檔,直覺是要用xml檔案 可以使用XmlDocument來完整讀寫xml檔。 微軟為了簡單這類config/xml的操作 .Net 2.0實作了ConfigurationManager來操作xml檔 例如單一值,可以直接: string portNumber = ConfigurationManager.AppSettings["PortNumber"]; 檔案內容如下: <appSettings> <add key="PortNumber" value="4532"/> </appSettings> 除了appSettings外,也支援常用的connectString等等。 這時候你會發現一些問題: 1.為何tag name要使用java那種camel命名法呢? 很不合.Net命法! 2.似乎這樣tag是很特定的,連寫法都是制式,那怎麼自訂自己的tag呢? 要在*.config內自訂自己的xml區塊是ok的, 但要讀取它你會發現ConfigurationManager.GetSection(),傳回object型別 你一定對這個object感到奇怪吧? 此文就講到怎麼讀自訂的區塊: http://www.cnblogs.com/AchillesHuang/archive/2005/11/27/285491.aspx 自訂的區塊也是靠XmlNode loop慢慢讀進來,沒比較高尚。 接著,你就會想到怎麼寫檔改值呢? 上文沒有提到 因此我找到另一篇文章: http://www.aspxboy.com/private/5410/default.aspx 利用ConfigurationSection來寫值,但它只能寫制式格式的值 對於自訂的區塊寫檔並沒有用處(或許我試不出來)。 文末有提到使用特定的class來轉型,但它只示範寫單行的attribute值而己 對於階層式的自訂xml區到,看不到怎麼寫! 而且,常常只是想儲存某值時,卻要用到上述的類別轉型 從文中也知道手法很不高尚,一直assign或lopp讀值 好像沒有比XmlDocument的SelectSingleNode()函式來得有用、簡單。 所以,在讀取的方式,實作IConfigurationHandle介面能簡化及封裝 這樣的好處是避免一直作XmlNode的操作,可理解。 但寫值方式,找了很多文章沒有提及, 也因此讓我不敢用上述的類別,仍是暫時使用XmlDocument來操作config檔。 最後,也發現那些java命名的節點,是內定有其意義的 那麼我們自訂的就不該用這樣的命名,避免和內定發生衝突。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.50.15

01/22 01:16, , 1F
雖然看不懂,不過還是推一下
01/22 01:16, 1F

01/22 03:41, , 2F
呵呵,以後你有寫config架構需求時,你就看得懂了 :)
01/22 03:41, 2F

07/07 11:52, , 3F
https://goo.gl/vSBWWj 這篇也在講類似的事 給各位參考
07/07 11:52, 3F
文章代碼(AID): #15is7eT8 (C_Sharp)
文章代碼(AID): #15is7eT8 (C_Sharp)