程序没有从app.config中找到Sectiongroup

时间:2014-04-30 08:15:50

标签: c# .net app-config

我正在研究一个控制台程序,它应该从我定义的app.config中找到一个sectiongroup,并在foreach循环中获取每个部分键。 这是我的app.config:

<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
  <appSettings>
  </appSettings>
    <configSections>
      <sectionGroup name="JobCheckerConfigGroup">
        <section name="TheJob" type="System.Configuration.NameValueSectionHandler"/>
        <section name="TheOtherJob" type="System.Configuration.NameValueSectionHandler"/>
      </sectionGroup>
    </configSections>
  <JobCheckerConfigGroup>
    <TheJob>
      <add key="Path" value="PathToTheJob" />
      <add key="JobName" value="TheJob" />
    </TheJob>
    <TheOtherJob>
      <add key="Path" value="*PathToTheOtherJob" />
      <add key="JobName" value="TheOtherJob" />
    </TheOtherJob>
  </JobCheckerConfigGroup>
</configuration>

这是C#代码:

static void Main(string[] args)
        {
            System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            ConfigurationSectionGroupCollection sectionGroups = config.SectionGroups;

            if (sectionGroups["JobCheckerConfigGroup"] != null)
            {
                foreach (ConfigurationSection mySection in sectionGroups["JobCheckerConfigGroup"].Sections)
                {
                    NameValueCollection db = (NameValueCollection)ConfigurationManager.GetSection("JobCheckerConfigGroup/" + mySection.SectionInformation.Name);
                        //ConfigurationSettings.GetConfig("JobCheckerConfigGroup/" + mySection.SectionInformation.Name);
                }
            }
        }

这段代码以第一个“if”结尾,但有一个例外,即:“参数sectionGroupName不存在”

我试过的另一种方式:

foreach (ConfigurationSectionGroup sectionGroup in sectionGroups)
            {
                if (sectionGroup.Name == "JobCheckerConfigGroup")
                {
                    foreach (ConfigurationSection configSection in sectionGroup.Sections)
                    {
                        var section = ConfigurationManager.GetSection(configSection.SectionInformation.SectionName) as NameValueCollection;
                        myPath = section["Path"];
                    }
                }
            }

在这段代码中,程序找到了十个其他的sectiongroups而不是我的“JobCheckerConfigGroup” 我试着遵循这条指令:How do you use sections in c# 4.0 app.config?但我无法让它为我工作。 有人有解决方案吗? 感谢。

0 个答案:

没有答案