Как настроить configSection в .net 4.0 - PullRequest
5 голосов
/ 27 марта 2012

Я пытаюсь настроить configSection для проекта .net 4.0.

<configuration>
  <configSections>
    <section name="MonitorFldrSection"
         type="System.Configuration.NameValueFileSectionHandler, System, Version=4.0.0.0"
          allowLocation="true"
          allowDefinition="Everywhere"/>
  </configSections>
  <MonitorFldrSection>
    <add name="fldr1" value="C:\Temp" />
    <add name="fldr2" value="C:\Projects" />
  </MonitorFldrSection>
  <connectionStrings>
  </connectionStrings>
  <appSettings>
  </appSettings>
</configuration>

Однако, когда я пытаюсь добавить ключ, все, что я получаю для подсказок, это комментарии или подсказки CDATA

Когда я пытаюсь получить доступ в коде

object obj = ConfigurationManager.GetSection("MonitorFldrSection");

, я получаю эту ошибку: {"Произошла ошибка при создании обработчика раздела конфигурации для MonitorFldrSection: не удалось загрузить файл или сборку" Система, Версия = 4.0.0.0'или одной из его зависимостей. Системе не удается найти указанный файл. (C: \ Projects_4.0 \ NasImageIndexer \ TestForm \ bin \ Debug \ TestForm.exe.Config строка 5) "}

Наряду с NameValueFileSectionHandlerЯ также пробовал AppSettingsSection и DictionarySectionHandler.

Что я делаю не так?

1 Ответ

2 голосов
/ 27 марта 2012

Можно ли найти этот файл в каталоге C: \ Projects_4.0 \ NasImageIndexer \ TestForm \ bin \ Debug \ TestForm.exe.Config?

Если не изменить свойство для файла конфигурации, Build Action -Копирование содержимого в выходной каталог - всегда копировать

Отредактировано:

Это сработало для меня после добавления токена открытого ключа и замены имени на ключ вместо

<configuration>
  <configSections>
   <section name="MonitorFldrSection"
type="System.Configuration.NameValueFileSectionHandler, System,   Version=4.0.0.0,         Culture=neutral, PublicKeyToken=b77a5c561934e089"
      allowLocation="true"
      allowDefinition="Everywhere"/>
</configSections>
<MonitorFldrSection>
<add key="fldr1" value="C:\Temp" />
<add key="fldr2" value="C:\Projects" />
</MonitorFldrSection>
<connectionStrings>
</connectionStrings>
<appSettings>
</appSettings>
</configuration>
...