动态ConfigurationSection是否可以以简单的方式实现?

时间:2011-03-27 20:53:16

标签: .net xml configurationsection

在.NET 1.0中,IConfigurationSectionHandler为实现配置处理程序提供了一个干净的单一方法接口。

在.NET 2中,ConfigurationSection出现了,它是一个复杂和静态类型执行的笨拙野兽,挥舞着一面旗帜,宣称“如果你使用IConfigurationSectionHandler,将会发生未知的祸害!”。

作为我的反叛者,试图将插件架构变成一个古老的静态框架,如.NET 2,我想要一个动态配置部分。没有什么是静态的,只是一个很好的XML节点树或嵌套的键/值对。插件可以在不定义易碎的序列化代码的情况下访问。

就像XML最初的目的一样,在它成为脆弱的catch-22 web.config恐怖和痛苦的样板序列化树的预兆之前。

有什么方法可以获得XMLElement实例或XMLReader吗?

1 个答案:

答案 0 :(得分:3)

考虑到这篇文章的年龄,你可能已经自己找到了相同的答案......

您可以实现仅需要覆盖受保护方法ConfigurationSection的{​​{1}}。您的自定义配置部分需要遵循基于属性的属性模式,这是.NET 2配置的标准。

DeserializeSection()接受DeserializeSection作为唯一参数。您可以使用XmlReader从您的部分中解析XML,并以您选择的任何方式公开该数据。