ConfigurationManager未加载设置

时间:2014-08-06 05:41:47

标签: c# configurationmanager

注意:我是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);

...到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设置始终为null。在致电System.ArgumentNullException时我收到new StreamReader(path)

如何访问设置?

2 个答案:

答案 0 :(得分:2)

您可以使用(仔细检查命名空间是否与应用程序中的任何内容匹配):

String path = myApp.Application.Properties.Settings.Default.path;

您还可以阅读Using Application Settings and User Settings,其中详细介绍了设计时设置。

答案 1 :(得分:1)

试试这个 -

<appSettings>
  <add key="training_path" value="C:\test.csv" />
</appSettings>
相关问题