如何在单个项目中从 C# 中的多个配置文件中读取值?

Posted

技术标签:

【中文标题】如何在单个项目中从 C# 中的多个配置文件中读取值?【英文标题】:How to read values from multiple Configuration file in c# within a single project? 【发布时间】:2012-09-27 23:23:30 【问题描述】:

在我的项目中,我有两个名为app.configaccessLevel.config 的应用程序配置文件。现在使用OpenExeConfiguration,我可以访问app.config.exe file,但不能访问accessLevel.config。请帮忙。

我有 2 个配置文件的主要原因是为了显示差异并简化代码。 我需要在我的C# 代码中读取accessLevel.config 的值。

尝试了以下代码但没有用:

System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
config.AppSettings.File = "App2.config";

【问题讨论】:

【参考方案1】:

见here。

把这个放在你的App.config:

<appSettings file="accessLevel.config"/>

然后有另一个名为 accessLevel.config 的文件,如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
  <add key="TestSetting" value="TestValue"/>
</appSettings>

然后您可以使用如下代码访问您的配置值:

string value = ConfigurationManager.AppSettings["TestSetting"];

确保 accessLevel.config 设置为复制到输出目录(在 Visual Studio 中右键单击文件 -> 属性 -> 复制到输出目录 -> 如果较新则复制)。

【讨论】:

我应该在app.config.exe 中有这行吗? 已经编辑和修复 - 看看你能不能让它工作?您尝试移动到另一个文件或其他配置部分的 appSettings 是什么?无论哪种方式,都适用相同的原则。 @Aniket 完成。抱歉,我错过了在正确的时间挑选它。 请注意,第二个配置 (accessLevel.config) 以 &lt;appSettings /&gt; 元素开头,而不是默认的 &lt;configuration /&gt; 元素。我花了大约 10 分钟才意识到这一点;) 这是如何“从多个配置文件中读取值”?通过 app.config 仅读取 accessLevel.config 中的值...

以上是关于如何在单个项目中从 C# 中的多个配置文件中读取值?的主要内容,如果未能解决你的问题,请参考以下文章

无法从 C# 中的控制台应用程序中读取配置文件

如何在 C# 中从 XmlNode 读取属性值?

mule 在流程中从类路径中读取单个文件

在 C# 中从多个数据表创建 csv 文件

如何在 C# 中从外部站点的 url 读取 PDF 文件 [关闭]

如何在eclipse中从另一个java项目中读取项目的属性文件