2016-05-04 3 views
0

У меня есть файл AppConfig, как показано ниже. Я пытаюсь пройти через конфигурационные разделы и получить имя раздела, на основе имени раздела, он должен выбрать соответствующие параметры приложения. Например, когда первый раздел является VehicleConfig, он должен автоматически выбрать appSettings VehicleConfig. Мне нужен этот автоматический выбор, потому что у меня несколько разделов, и мне нужно получить настройки приложений разных разделов на основе их названий разделов.Доступ к нескольким разделам в AppConfig

<configuration> 
    <configSections> 
     <sectionGroup name="group1"> 
     <section name="Vehiclefeature"type="System.Configuration.NameValueSectionHandler" /> 
     <section name="LiveDownloader" type="System.Configuration.NameValueSectionHandler" /> 
     </sectionGroup> 
    </configSections> 
    <VehicleFeature> 
     <add key="FileRoot" value="C:\FilesToUpload" /> 
     <add key="Project" value="BigDataTest" /> 
     <add key="Dataset" value="StoreServer" /> 
    </VehicleFeature> 
    <LiveDownloader> 
     <add key="FileRoot" value="C:\FilesToUpload" /> 
     <add key="Project" value="BigDataTest" /> 
     <add key="Dataset" value="BQSMeasure" /> 
    </LiveDownloader> 
    </configuration> 

Я попробовал этот код и когда второй для каждой петли-хит, он выдает ошибку «Непризнанные AppSettings элемент внутри VehicleConfig». Я попытался удалить appSettings, но затем он выбрасывает «Unrecognized element add». Интересно, могу ли я иметь эти элементы внутри VehicleConfig.

System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

ConfigurationSectionGroupCollection sectionGroups = config.SectionGroups; 

     foreach (ConfigurationSectionGroup group in sectionGroups) 
     // Loop over all groups 
     { 
      Console.WriteLine(group); 
      if (group.Name == "FileCheckerConfigGroup") 
      { 
       foreach (ConfigurationSection configurationSection in group.Sections) 
       { 
        var section = ConfigurationManager.GetSection(configurationSection.SectionInformation.SectionName) as NameValueCollection; 
       } 
      } 
     } 

Любая помощь приветствуется!

+0

Это может ответить на ваш вопрос http://stackoverflow.com/questions/20195198/how-to-use-configurationmanager-appsettings-with-a-custom-section – Fred

ответ

0
 System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

     // Get the collection of the section groups. 
     ConfigurationSectionGroupCollection sectionGroups = config.SectionGroups; 

     // Show the configuration values 
     foreach (ConfigurationSectionGroup group in sectionGroups) 
     // Loop over all groups 
     { 
      if (group.Name == "group1") 
      { 
       foreach (ConfigurationSection configurationSection in group.Sections) 
       { 
        var section1 = ConfigurationManager.GetSection(configurationSection.SectionInformation.SectionName) as NameValueCollection; 

       } 
      } 
     } 
Смежные вопросы