2011-03-27 59 views
1

在.NET 1.0中,IConfigurationSectionHandler提供了一個乾淨的單一方法接口來實現配置處理程序。是否可以通過簡單的方式實現動態ConfigurationSection?

在.NET 2中,ConfigurationSection出現了,它是一個複雜性和靜態類型強制執行的偉大笨重的野獸,揮舞着一面宣稱「如果使用IConfigurationSectionHandler!會發生未知的惡習」的橫幅。作爲我的反叛者,我試圖將一個插件架構變成一個古老的靜態框架,比如.NET 2,我想要一個動態配置部分。沒有什麼是靜態的,只是一個很好的XML節點樹或嵌套的鍵/值對。一些插件可以訪問而不需要定義脆弱的序列化代碼。

像XML最初是爲了在它成爲脆弱的catch-22 web.config恐怖和痛苦的樣板序列化樹的預兆之前。

有沒有什麼辦法可以讓我得到一個XMLElement實例或XMLReader?

回答

3

考慮到這個職位的年齡,你可能已經發現自己的這個相同的答案......

您可以實現ConfigurationSection只需要重寫受保護的方法DeserializeSection()。您的自定義配置部分不需要需要遵循基於屬性的屬性模式,這是.NET 2配置的常態。

DeserializeSection接受XmlReader作爲其唯一參數。您可以使用該XmlReader從您的部分中解析出XML,並以您選擇的任何方式公開該數據。

+0

謝謝,這正是我所做的。然後我暴露了一個css-like選擇器引擎,用於設置查詢。應該回答我自己的問題,但我忘了它.... – 2012-12-19 22:49:55

相關問題