如何让 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)