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

C# 使用.NET ConfigurationManager从字符串而不是app.config文件读取设置,c#,configurationmanager,system.configuration,C#,Configurationmanager,System.configuration,我们正在数据中心的不同机器上运行多个服务实例(实现为.exe文件)。但是,我们希望将此.exe文件的配置参数存储在中心位置(而不是每台计算机的.exe.config中) 为此,我们计划将.exe.config文件的内容移动到中央存储库(Active Directory或SQL)中的一个属性,并使.exe在所有机器上运行从该存储库读取 我希望重用用于读取/写入配置信息的所有现有类(使用ConfigurationManager、ConfigurationProperty等,基本上使用整个.NET配置

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

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

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


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

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


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

我想您可以编写自己的工具,然后加载r中央存储库中的eal配置数据


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

尽管我怀疑这是它的目的,但我们已经做到了这在我们的项目中使用。基本上,这个类应该允许您加密您的配置文件,但我们只是让Decrypt方法连接到我们的数据库并返回配置信息。有关实现的注意事项,请参阅。这感觉有点粗糙,但如果不完全重写所有的c配置解析逻辑。

虽然我怀疑这是它的目的,但我们在项目中使用完成了这项工作。基本上,这个类应该允许您加密配置文件,但我们只是让Decrypt方法连接到数据库并返回配置信息。有关实现的说明,请参阅。此fe这有点麻烦,但是如果不完全重写所有配置解析逻辑,我们就找不到任何其他方法。

您需要一个不同的设置Provider。有一个示例,应该提供足够的提示,说明如何实现您自己的设置:您需要一个不同的设置Provider。有一个示例,应该提供足够的提示,说明如何导入您自己的:感谢Andrew的评论。尽可能多地重新使用现有基础设施正是我们的目标。我们的二进制文件通过一个集中的脚本发布到生产数据中心。目前,我们在数据中心机器上部署.exe和.exe.config文件。问题是没有集中的方法来控制配置了.exe,我们不希望每次更改配置时都在任何地方重新部署.exe.config文件。此外,配置代码已经利用了.NET配置部分。感谢Andrew的评论。重复使用尽可能多的现有基础结构正是我们的目标。我们的二进制文件get通过一个集中的脚本部署到我们的生产数据中心。目前,我们在数据中心计算机上部署.exe和.exe.config文件。问题是没有集中的方法来控制.exe的配置,我们不希望每次更改配置时都重新部署.exe.config文件。其他实际上,配置代码已经利用了.NET配置部分。