2011-03-27 61 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

相关问题