注意:总的来说,我是ConfigurationManager和.NET的新手。
我有:
static void Main(string[] args) {
//...
String path = ConfigurationManager.AppSettings["training_path"];
StreamReader sr = new StreamReader(path) // path always null
}我加了..。
Console.WriteLine(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);...to在main的顶部,它会输出预期的默认配置文件。
配置文件如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="xgboost_format.Application" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<applicationSettings>
<myApp.Application>
<setting name="training_path" serializeAs="String">
<value>C:\test.csv</value>
</setting>
</myApp.Application>
</applicationSettings>
</configuration>问题是path设置始终为空。当调用new StreamReader(path)时,我得到一个System.ArgumentNullException。
如何访问设置?
发布于 2014-08-06 13:46:22
您可以使用(仔细检查名称空间是否与应用程序中的任何名称空间匹配):
String path = myApp.Application.Properties.Settings.Default.path;您还可以阅读Using Application Settings and User Settings,它深入介绍了设计时设置的更多细节。
发布于 2014-08-06 13:50:40
试试这个-
<appSettings>
<add key="training_path" value="C:\test.csv" />
</appSettings>https://stackoverflow.com/questions/25152974
复制相似问题