對比使用IConfigurationSectionHandler和ConfigurationSection自定義節點和自定義處理程序

使用自定義處理程序處理節點的好處我認爲是,可以在業務代碼中,不必再寫一些讀取配置文件的非業務代碼了,只管取值。如果多處使用該配置節點,其優勢更能體現出來。然後突然要增刪配置,也只管改節點處理程序的代碼了,維護代碼更省心了。下面對比實現IConfigurationSectionHandler接口和繼承ConfigurationSection的不同。
 
實現IConfigurationSectionHandler接口,給我感覺最直觀的感受,代碼比繼承ConfigurationSection少很多。但缺點是,需要自己寫解析xml節點的代碼,對於xml配置節點少的來講還是很方便的。
 
繼承ConfigurationSection,優勢是,無需自己寫解析xml節點的代碼,節點的配置必須是節點的屬性,不能是InnerText。但缺點是要寫的代碼多,給我的感覺是,需要對ConfigurationSection的源碼要有一定的瞭解纔行,必須按照一定的規則纔行,沒有IConfigurationSectionHandler來的簡單。比如ConfigurationSection區分節點需要用到Key,而如果你指定的key對應的屬性的值寫成一樣的了,這時候就無法獲取key屬性值相同的後面的節點了。而實現IConfigurationSectionHandler接口不需要Key,.net framework本身解析配置節點是按照ConfigurationSection解析,也不難發現.net framework的配置文件一般是在節點裏寫屬性,不會使用文本元素。
對於IConfigurationSectionHandler和ConfigurationSection的使用可以看看《.net 之美》這本書的第13章。我後面也提供抄下來的源碼。
 
CustomConfigSection.zip
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章