在.NET 1.0中,IConfigurationSectionHandler为实现配置处理程序提供了一个干净的单一方法接口。
在.NET 2中,ConfigurationSection出现了,它是一个复杂和静态类型执行的笨拙野兽,挥舞着一面旗帜,宣称“如果你使用IConfigurationSectionHandler,将会发生未知的祸害!”。
作为我的反叛者,试图将插件架构变成一个古老的静态框架,如.NET 2,我想要一个动态配置部分。没有什么是静态的,只是一个很好的XML节点树或嵌套的键/值对。插件可以在不定义易碎的序列化代码的情况下访问。
就像XML最初的目的一样,在它成为脆弱的catch-22 web.config恐怖和痛苦的样板序列化树的预兆之前。
有什么方法可以获得XMLElement实例或XMLReader吗?
答案 0 :(得分:3)
考虑到这篇文章的年龄,你可能已经自己找到了相同的答案......
您可以实现仅需要覆盖受保护方法ConfigurationSection
的{{1}}。您的自定义配置部分不需要遵循基于属性的属性模式,这是.NET 2配置的标准。
DeserializeSection()
接受DeserializeSection
作为唯一参数。您可以使用XmlReader
从您的部分中解析XML,并以您选择的任何方式公开该数据。