如何让 ConfigurationManager 读取 app.config 以外的配置文件?

Posted

技术标签:

【中文标题】如何让 ConfigurationManager 读取 app.config 以外的配置文件?【英文标题】:How to make ConfigurationManager read a config file other than app.config? 【发布时间】:2011-02-17 14:06:44 【问题描述】:

我需要解析位于另一个项目中的配置文件。我知道 ConfigurationManager 默认会读取 app.config 文件,但是如何让它读取特定的配置文件呢?

【问题讨论】:

默认情况下,应用程序从具有应用程序入口点的项目中读取配置文件。如果您想从项目中的配置文件中读取,请使用 [ConfigurationManager.OpenMappedExeConfiguration][0] 方法。这是使用此方法的minimal reproducible example[1]。 [0]:msdn.microsoft.com/en-us/library/ms134269.aspx [1]:dotnetanalysis.blogspot.com/2012/08/… 【参考方案1】:

或者像这样:

var fileMap = new ConfigurationFileMap(configFilePath);
Configuration config = ConfigurationManager.OpenMappedMachineConfiguration(fileMap);

但是您仍然会遇到自定义配置部分的问题。

【讨论】:

【参考方案2】:
// Create a filemap refering the config file.
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = configFilePath;

// Retrieve the config file.
Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);

【讨论】:

以上是关于如何让 ConfigurationManager 读取 app.config 以外的配置文件?的主要内容,如果未能解决你的问题,请参考以下文章

ConfigurationManager.AppSettings - 如何修改和保存?

如何在类库项目类型中使用 ConfigurationManager 类

如何使用 ConfigurationManager 通过 ClickOnce 更新持久化 app.config?

如何使用 ConfigurationManager 从 appsetting 中获取连接字符串?

如何使用ConfigurationManager读写配置文件

如何使用ConfigurationManager? (Microsoft.IdentityModel.Protocols)