Использование ConnectionStrings и пользовательских ConfigSections в одном App.Config - PullRequest
2 голосов
/ 22 августа 2011

У меня есть пользовательский configSection, который работает как положено. Однако, когда я добавляю секцию connectionStrings, я получаю сообщение об ошибке:

Configuration system failed to initialize

на линии:

StencilObjects so = ConfigurationManager.GetSection( "stencilObjects" ) as StencilObjects;

Вот конфиг:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="connection" connectionString="foo"/>
  </connectionStrings>
  <configSections>
    <section name="stencilObjects" type="Stencil.Configuration.StencilObjects, Stencil.Configuration"/>
  </configSections>
  <stencilObjects>
    <tableData>
      <table schema="Auth" name="SecurityQuestion" />
    </tableData>
  </stencilObjects>
</configuration>

Есть ли ограничения при использовании пользовательского раздела конфигурации? Разве это не позволяет использовать строки подключения?

Опять же, когда я удаляю connectionStrings, приложение работает как положено.

Есть идеи о том, что происходит?

1 Ответ

4 голосов
/ 22 августа 2011

Я еще не нашел ссылку для подтверждения этого с явным утверждением, но я всегда без проблем использовал configSections в начале файла.Попробуйте вот так:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="stencilObjects" type="Stencil.Configuration.StencilObjects, Stencil.Configuration"/>
  </configSections>
  <connectionStrings>
    <add name="connection" connectionString="foo"/>
  </connectionStrings>
  <stencilObjects>
    <tableData>
      <table schema="Auth" name="SecurityQuestion" />
    </tableData>
  </stencilObjects>
</configuration>

configSections определенно не нужно , чтобы быть перед разделом, который он описываетconnectionStrings может быть между.

...