Mat*_*att 163 .net c# configurationmanager appsettings
我无法访问配置文件中的值.
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var clientsFilePath = config.AppSettings.Settings["ClientsFilePath"].Value;
// the second line gets a NullReferenceException
Run Code Online (Sandbox Code Playgroud)
.config文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<!-- ... -->
<add key="ClientsFilePath" value="filepath"/>
<!-- ... -->
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
你有什么建议我该怎么办?
Ada*_*dam 324
这对我有用:
string value = System.Configuration.ConfigurationManager.AppSettings[key];
Run Code Online (Sandbox Code Playgroud)
rot*_*ers 56
dtsg给出的答案有效:
string filePath = ConfigurationManager.AppSettings["ClientsFilePath"];
Run Code Online (Sandbox Code Playgroud)
但你需要添加一个程序集引用到
系统配置
转到解决方案资源管理器,右键单击 "引用",然后选择" 添加引用".选择组件选项卡并搜索配置.

这是我的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>
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式获得:
string adminName = ConfigurationManager.AppSettings["AdminName"];
Run Code Online (Sandbox Code Playgroud)
dts*_*tsg 20
放手一搏:
string filePath = ConfigurationManager.AppSettings["ClientsFilePath"];
Run Code Online (Sandbox Code Playgroud)
Mas*_*ali 18
从配置中读取:
您需要添加对Config的引用
string value = Properties.Settings.Default.keyname;
Run Code Online (Sandbox Code Playgroud)
保存到配置:
Properties.Settings.Default.keyName = value;
Properties.Settings.Default.Save();
Run Code Online (Sandbox Code Playgroud)
我在用:
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"];
Run Code Online (Sandbox Code Playgroud)
其中value1 = ...和value3 = ...给出null,value2 = ......有效
然后我决定用以下内容替换内部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"];
Run Code Online (Sandbox Code Playgroud)
使用VS2012 .net 4
小智 5
在app/web.config文件中设置以下配置:
<configuration>
<appSettings>
<add key="NameForTheKey" value="ValueForThisKey" />
...
...
</appSettings>
...
...
</configuration>
Run Code Online (Sandbox Code Playgroud)
然后您可以在代码中输入以下内容来访问此代码:
string myVar = System.Configuration.ConfigurationManager.AppSettings["NameForTheKey"];
Run Code Online (Sandbox Code Playgroud)
*请注意,此功能适用于.net4.5.x和.net4.6.x; 但不工作.net core。最好的问候:拉斐尔
| 归档时间: |
|
| 查看次数: |
488889 次 |
| 最近记录: |