我不能够访问配置文件中的值。
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var clientsFilePath = config.AppSettings.Settings["ClientsFilePath"].Value;
// the second line gets a NullReferenceException
config文件 :
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<!-- ... -->
<add key="ClientsFilePath" value="filepath"/>
<!-- ... -->
</appSettings>
</configuration>
你有什么建议,我该怎么办?
Answer 1:
这对我的作品:
string value = System.Configuration.ConfigurationManager.AppSettings[key];
Answer 2:
这dtsg了作品的答案:
string filePath = ConfigurationManager.AppSettings["ClientsFilePath"];
但你需要添加集的引用
系统配置
转到您的解决方案资源管理器 , 右键单击引用,然后选择添加引用 。 选择组件选项卡并搜索配置 。
这里是我的App.config中的一个例子:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<appSettings>
<add key="AdminName" value="My Name"/>
<add key="AdminEMail" value="MyEMailAddress"/>
</appSettings>
</configuration>
您可以通过以下方式获得:
string adminName = ConfigurationManager.AppSettings["AdminName"];
Answer 3:
给这个一展身手:
string filePath = ConfigurationManager.AppSettings["ClientsFilePath"];
Answer 4:
阅读从配置:
你将需要添加到配置参考
- 你的项目打开“属性”
- 进入“设置”选项卡
- 添加“名称”和“值”
- 获得值使用下面的代码:
string value = Properties.Settings.Default.keyname;
保存到配置:
Properties.Settings.Default.keyName = value;
Properties.Settings.Default.Save();
Answer 5:
我在用:
ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
//configMap.ExeConfigFilename = @"d:\test\justAConfigFile.config.whateverYouLikeExtension";
configMap.ExeConfigFilename = AppDomain.CurrentDomain.BaseDirectory + ServiceConstants.FILE_SETTING;
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
value1 = System.Configuration.ConfigurationManager.AppSettings["NewKey0"];
value2 = config.AppSettings.Settings["NewKey0"].Value;
value3 = ConfigurationManager.AppSettings["NewKey0"];
当值1 = ...和值3 = ...给空和值2 = ...作品
然后,我决定更换内部的app.config:
// Note works in service but not in wpf
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", @"d:\test\justAConfigFile.config.whateverYouLikeExtension");
ConfigurationManager.RefreshSection("appSettings");
string value = ConfigurationManager.AppSettings["NewKey0"];
使用VS2012的.NET 4
Answer 6:
在app/web.config
文件中设置以下配置:
<configuration>
<appSettings>
<add key="NameForTheKey" value="ValueForThisKey" />
...
...
</appSettings>
...
...
</configuration>
那么你可以通过把在这行代码中的访问此:
string myVar = System.Configuration.ConfigurationManager.AppSettings["NameForTheKey"];
*请注意,此工作的优良.net4.5.x
和.net4.6.x
; 但不为工作.net core
。 最好的问候:拉斐尔
Answer 7:
一些问题的答案似乎有点过IMO这是我取大约2016
<add key="ClientsFilePath" value="filepath"/>
确保System.Configuration
参考。
问题是要求一个的AppSettings 键的值
其中大部分当然应该
string yourKeyValue = ConfigurationManager.AppSettings["ClientsFilePath"]
//yourKeyValue should hold on the HEAP "filepath"
这里是一个扭曲中,你可以组在一起值(不适用于这个问题)
var emails = ConfigurationManager.AppSettings[ConfigurationManager.AppSettings["Environment"] + "_Emails"];
emails
将环境键+“_Emails”的价值
example : jack@google.com;thad@google.com;
Answer 8:
对于Web应用程序,我通常会写这个方法,只是用钥匙调用它。
private String GetConfigValue(String key)
{
return System.Web.Configuration.WebConfigurationManager.AppSettings[key].ToString();
}
Answer 9:
说回这一个很长一段时间后,...
鉴于ConfigurationManager中灭亡,任何人都仍然在寻找一个答案尝试(例如):
AppSettingsReader appsettingsreader = new AppSettingsReader();
string timeAsString = (string)(new AppSettingsReader().GetValue("Service.Instance.Trigger.Time", typeof(string)));
当然需要的System.Configuration。
(Editted代码的东西,实际工作和简单阅读)
Answer 10:
见我做了我认为是很明显的事情是:
string filePath = ConfigurationManager.AppSettings.GetValues("ClientsFilePath").ToString();
虽然,编译它总是返回null。
然而,这(从上面)工作原理:
string filePath = ConfigurationManager.AppSettings["ClientsFilePath"];
Answer 11:
我简单的测试也失败了,按照这里的其他答案的建议 - 直到我意识到,我加入到我的桌面应用程序的配置文件被命名为“App1.config”。 我把它改名为“App.config中”,一切工作立即,因为它应该。
Answer 12:
你可以简单地输入:
string filePath = Sysem.Configuration.ConfigurationManager.AppSettings[key.ToString()];
因为key
是对象AppSettings
需要一个字符串
Answer 13:
- 你的项目打开“属性”
- 进入“设置”选项卡
- 添加“名称”和“值”
代码将自动生成
<configuration> <configSections> <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup ..." ... > <section name="XX....Properties.Settings" type="System.Configuration.ClientSettingsSection ..." ... /> </sectionGroup> </configSections> <applicationSettings> <XX....Properties.Settings> <setting name="name" serializeAs="String"> <value>value</value> </setting> <setting name="name2" serializeAs="String"> <value>value2</value> </setting> </XX....Properties.Settings> </applicationSettings> </configuration>
为了得到一个值
Properties.Settings.Default.Name
要么
Properties.Settings.Default [ “名称”]
文章来源: AppSettings get value from .config file