我想使用App.config来存储一些设置。我尝试使用下一段代码从配置文件中获取参数。
private string GetSettingValue(string paramName)
{
return String.Format(ConfigurationManager.AppSettings[paramName]);
}我还为它添加了System.Configuration (我使用了一个单独的类),在App.config文件中我有:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<appSettings>
<add key ="key1" value ="Sample" />
</appSettings>
</configuration>但是我在尝试使用ConfigurationManager - ConfigurationManager can't exist in such context时出错了,但是我已经添加了System.Configuration。还是我错过了什么?
编辑
使用config (完整视图)初始化
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
namespace browser
{
class ConfigFile
{
private string GetSettingValue(string paramName)
{
return String.Format(ConfigurationManager.AppSettings[paramName]);
}
}
}EDIT2
加上它的外观

这意味着问题不是在使用ConfigurationManger期间,而是在使用之前--程序“说”它“不知道”我理解错误的“元素”--“元素ConfigurationManager”不存在于这样的上下文中。
EDIT3

编辑4

发布于 2013-10-07 19:20:43
好吧,我花了一段时间才看到这个,但这不可能是编译出来的:
return String.(ConfigurationManager.AppSettings[paramName]);您甚至没有在String类型上调用方法。就这么做吧:
return ConfigurationManager.AppSettings[paramName];AppSettings KeyValuePair已经返回一个字符串。如果名称不存在,它将返回null。
根据您的编辑,您还没有为您正在工作的项目向程序集添加一个引用。
发布于 2019-10-21 14:57:09
转到tools >> nuget >> console并键入:
Install-Package System.Configuration.ConfigurationManager 如果您想要一个特定的版本:
Install-Package System.Configuration.ConfigurationManager -Version 4.5.0现在将导入ConfigurationManager dll,代码将开始工作。
发布于 2017-08-18 14:35:24
我找到了一些答案,但我不知道这是不是正确的方法。这是我现在的解决方案。幸运的是它没有打破我的设计模式。
/// <summary>
/// set config, if key is not in file, create
/// </summary>
/// <param name="key">Nome do parâmetro</param>
/// <param name="value">Valor do parâmetro</param>
public static void SetConfig(string key, string value)
{
var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var settings = configFile.AppSettings.Settings;
if (settings[key] == null)
{
settings.Add(key, value);
}
else
{
settings[key].Value = value;
}
configFile.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
}
/// <summary>
/// Get key value, if not found, return null
/// </summary>
/// <param name="key"></param>
/// <returns>null if key is not found, else string with value</returns>
public static string GetConfig(string key)
{
return ConfigurationManager.AppSettings[key];
}https://stackoverflow.com/questions/19232695
复制相似问题