在同一个App.Config中使用ConnectionStrings和自定义ConfigSections

时间:2011-08-22 17:22:15

标签: c# .net app-config

我有一个按预期工作的自定义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 个答案:

答案 0 :(得分:4)

我还没有找到一个链接来支持这个,但有一个明确的声明,但我总是在文件的顶部使用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可以介于两者之间。