16

这是我的 app.config

<configuration>
  <configSections>
      <section name="procedureList" type="System.Configuration.NameValueSectionHandler, System, Version=4.0.30319, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
  </configSections>

  <procedureList>
    <add key="NAS.spBusObjGetLineProd" value="@area='Melt Shop';@endDt=?date?;@dayonly=1;@obj='Melt Shop Business Objective" />
    <add key="NAS.spBusObjGetLineProd" value="@area='Cold Mill';@endDt=?date?;@dayonly=1;@obj='Cold Mill Business Objective" /> 
  </procedureList>
  <appSettings>
    <add key="Connstr" value=""/>
    <add key="Userid" value=""/>
    <add key="Timeout" value=""/>
  </appSettings>

</configuration>

但是当我在代码中调用它时,我得到一个空值

public void samplemethod()
{
    NameValueCollection nvc = ConfigurationManager.GetSection("procedureList") as NameValueCollection;
    string[] keys = nvc.AllKeys;
}

我将不胜感激任何帮助指出我做错了什么

4

3 回答 3

6

使用节处理程序对配置文件中的设置进行分组

例如,您可以遵循以下内容

private void ReadSettings()
{
    NameValueCollection loc = 
   (NameValueCollection )ConfigurationSettings.GetConfig("procedureList");
}

MSDN ConfigurationManager.GetConfig 方法

于 2012-08-08T21:10:49.203 回答
6

如果您正在测试您的课程,您必须将配置复制到app.config您的测试项目中。

于 2015-10-28T08:20:48.737 回答
0

使用即时窗口检查它指向的配置文件。就我而言,我有 app.config 我希望它可以读取,但是使用命令。ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None) 它指向其他类似 nuintrunner.exe.config 的信息,因为该信息已加载到 bin 中。这有助于加载正确的配置文件

于 2021-04-29T10:34:59.103 回答