1

我的项目中有一个配置文件,由于某种原因我无法读取。过去,类似的代码对我有用。我不确定我在这里做错了什么。我想知道是否有人可以看看并让我知道我是否做错了什么。请帮忙...

这是我的代码:

  KeyValueConfigurationCollection settings;
  Configuration config;
  ExeConfigurationFileMap configFile = new ExeConfigurationFileMap();
  configFile.ExeConfigFilename = "myProject.exe.config";
  config = ConfigurationManager.OpenMappedExeConfiguration(configFile, ConfigurationUserLevel.None);
  settings = config.AppSettings.Settings;
  this.logFilePath = settings["logFilePath"].Value;
  this.logFilePath = settings["logFileName"].Value;

这是我的配置文件:

<?xml version="1.0"?/>
<configuration>
  <add key="logFilePath" value=".//Results//" />
  <add key="logFileName" value="Output.xml" />
</configuration>

在此先感谢, 哈里特

4

3 回答 3

2

哈里特,尝试将您的结构修改为:

<?xml version="1.0"?/>
<configuration>
   <appSettings>
     <add key="logFilePath" value=".//Results//" />
     <add key="logFileName" value="Output.xml" />
   <appSettings>
</configuration>

使用ConfigurationManager创建这个精确结构的要求。它应该与上述更改按计划工作。

于 2013-10-29T21:39:44.853 回答
0

您的配置中缺少 AppSettings 集合。您只有配置的根级别。但是你在你的代码中请求。

你的配置应该是

<configuration>
   <appSettings>
      <add key="logFilePath" value=".//Results//" />
      <add key="logFileName" value="Output.xml" />
   </appSettings>
</configuration>
于 2013-10-29T21:42:21.133 回答
0

从不同的 web.config 读取值:

ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = AppDomain.CurrentDomain.BaseDirectory + @"second.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap,ConfigurationUserLevel.None);

ConfigurationSection mySection = config.GetSection("countoffiles");
if (config.AppSettings.Settings.Count > 0)
{
    System.Configuration.KeyValueConfigurationElement customSetting =
        config.AppSettings.Settings["countoffiles"];
    if (customSetting != null)
    {
        Response.Write(customSetting.Value);
    }
    else
    {
        Console.WriteLine("No countoffiles application string");
    }
}
于 2014-09-05T15:11:56.513 回答