眾所周知,程序的靈活性有一部分就是“配”出來了。
當然,config文件從來就沒有讓.NET的同學輕松過,至少,我覺得很麻煩。
.NET的配置文件方便,其實最方便的是appSettings
<appSettings> <add key="apiKey" value = "8asdf9as9d2asd" /></appSettings>
而自定義配置比較繁瑣,要熟悉.NET的配置文件體系,才能了然于胸。
當然,奉獻精神的人們提供了一個DSL杰作——ConfigurationSectionDesigner。
從某種程度上來說,我對.NET的自定義配置是矛盾的:
我喜歡它,因為嚴格,不可修改;
我不喜歡它,往往修改設計的時候,就比較麻煩,要該好多引用。
XML很靈活,但我又懼怕其復雜的API,截止到使用Linq To Xml之前,我都一直抱著這種態度。
甚至多次想寫一個XMLHelper,結果每次看到一堆的定義和API,就傻了。
這里,是Linq To Xml讓我改變了對XML的態度。
主要API:
1)加載一個文檔;
XDocument doc = XDocument .Load(path);或XElement doc = XElement .Load(path);
區別就是,XElement加載之后,當做一個元素;而XDocument(當做一個文檔)有一個典型的屬性——Root。
2)查找元素;
提供了良好的樹形API,給人很清晰的感覺。
doc.Elements("yourName") ; //查找元素集合doc.Element("yourName") ; //查找單個元素doc.Descendants("yourName"); //查找子孫元素當然,后面加上Linq的擴展,Where,Select等Lambda方式,是很自然的事情。
3)修改元素,增加元素,刪除元素;
SetValue,Add,AddAfterSelf,AddBeforeSelf
RemoveAll
XElement root = new XElement("Categories", new XElement("Category", new XAttribute("CategoryID", "1"), new XElement("CategoryName", "Beverages"), new XElement("Descrxml文件的讀寫是如此地方便。
3.選擇
總體上來說,XML比config文件更加靈活。
在config應對各種復雜配置無力(修改代碼很無奈)時,我傾向于使用XML進行配置;
在配置很固定時,很簡單時,我很傾向使用config進行配置。
使用XML文件時,有個VS小提示——選中XML文件,右鍵,屬性,輸出目錄,選擇“始終復制”。
新聞熱點
疑難解答