从数据库中读取.NET配置

mar*_*c_s 13 .net sql-server configuration

.NET 2.0及更高版本的配置系统非常强大且可扩展 - 只要您不想更改它全部来自文件系统中的XML文件.

在我的要求中,我无法更改文件,因为我的应用程序在我无法访问的托管环境中运行 - 但我可以更改SQL Server数据库.

所以我正在考虑将配置文件或部分存储在SQL表中 - 但是如何将.NET 2.0配置系统绑定到此?

有没有办法编写一个"自定义配置提供程序",它将从文件系统中的*.config文件中读取其配置节,但是从SQL数据库中的表中读取?

我一直在寻找创建自己的自定义ConfigurationSection或ConfigurationElement,甚至是自定义配置本身 - 但似乎我总是最终回到我可以在文件系统中扩展配置系统的程度,我喜欢,但我不能让它从数据库表中读取我的XML片段.....

我错过了什么?有人已经这样做了并且关心解释/分享?

谢谢!渣

PS:我还尝试将配置XML读入字符串,然后将其反序列化为适当的例如ServiceModelConfigSection - 遗憾的是,这不起作用,因为ConfigSection基类以某种方式不实现它所需的方法是XML可序列化的........(YIKES !!!)

Kel*_*tex 5

这里有一篇文章谈到做你正在谈论的事情:

http://www.wrox.com/WileyCDA/Section/Redirecting-Configuration-with-a-Custom-Provider.id-291932.html

总之,他们所做的是创建ProtectedConfigurationProvider的派生版本,该版本通常用于加密.config文件.在Decrypt方法中,不是解密配置信息,而是从数据库中检索它.

  • 嗨Keltex - 它的工作原理 - 主要是 - 但在我看来这是一个非常糟糕的HACK .....太糟糕了,没有"正确的",好的,官方的方式将配置提供程序直接插入.NET配置系统.... . (2认同)