【发布时间】:2010-10-05 01:39:54
【问题描述】:
我知道我可以使用静态 ConfigurationManager.OpenExe(exePath) 方法打开与程序集相关的配置文件,但我只想打开与程序集无关的配置。只是一个标准的 .NET 配置文件。
【问题讨论】:
标签: c# configuration
我知道我可以使用静态 ConfigurationManager.OpenExe(exePath) 方法打开与程序集相关的配置文件,但我只想打开与程序集无关的配置。只是一个标准的 .NET 配置文件。
【问题讨论】:
标签: c# configuration
Ricky 发的文章很好,可惜没有回答你的问题。
要解决您的问题,您应该尝试以下代码:
ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
configMap.ExeConfigFilename = @"d:\test\justAConfigFile.config.whateverYouLikeExtension";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
如果需要访问配置中的值,可以使用索引运算符:
config.AppSettings.Settings["test"].Value;
【讨论】:
whateverYouLikeExtension,你的意思是你必须在config.之后有something吗?
ConfigurationManager.ConnectionStrings。相反,您必须从上面最后一条语句返回的 config 对象中读取值。
配置文件只是一个 XML 文件,您可以通过以下方式打开它:
private static XmlDocument loadConfigDocument()
{
XmlDocument doc = null;
try
{
doc = new XmlDocument();
doc.Load(getConfigFilePath());
return doc;
}
catch (System.IO.FileNotFoundException e)
{
throw new Exception("No configuration file found.", e);
}
catch (Exception ex)
{
return null;
}
}
然后通过以下方式检索值:
// retrieve appSettings node
XmlNode node = doc.SelectSingleNode("//appSettings");
【讨论】:
throw new Exception("No configuration file found.", e);之后检测到无法访问的代码。