使用.NET ConfigurationManager从字符串而不是app.config文件中读取设置

本文关键字:config app 文件 设置 读取 ConfigurationManager NET 字符串 使用 | 更新日期: 2023-09-27 18:28:23

我们正在数据中心的不同机器上运行服务的多个实例(实现为.exe文件)。但是,我们希望将该.exe文件的配置参数存储在一个中心位置(而不是每台机器都存储在.exe.config中)。

为此,我们计划将.exe.config文件的内容移动到中央存储库(Active Directory或SQL)中的一个属性,并使在所有计算机上运行的.exe文件从此存储库中读取。

我想重用所有用于读/写配置信息的现有类(使用ConfigurationManager、ConfigurationProperty等,基本上使用整个.NET配置框架)-然而,而不是从.exe.config文件加载它(默认情况下是这样做的——我希望它从我将从中央存储库检索的XML blob的字符串值加载它。

我试图找到使用ConfigurationManager API的方法,但找不到任何可以从字符串加载配置节的方法。有指针吗?

使用.NET ConfigurationManager从字符串而不是app.config文件中读取设置

我想您可以编写自己的ConfigurationSection,然后从中央存储库加载真实的配置数据。

或者,您是否有某种集中部署系统用于在各种服务器上安装软件?您的服务是如何部署的?与其给软件增加复杂性,不如寻找已经解决问题的现有工具。

尽管我怀疑这是它的初衷,但我们已经在使用ProtectedConfigurationProvider的项目中做到了这一点。基本上,这个类应该允许你加密你的配置文件,但我们只是让Decrypt方法连接到我们的数据库并返回配置信息。有关实施的注意事项,请参见此。这感觉有点棘手,但如果不完全重写所有配置解析逻辑,我们就找不到其他方法。